Javascript 中文字符串处理额外注意事项
作者:bea
var strSex="男" ; 在GB2312编码中,假设有另一变量strAxSex是从ActiveX控件中读出的BSTR值,原始值也是"男" ,这时做在javascript程序中做比较:strSex==strAxSex为false,也就是"男"!="男"。 但如果从VS2005调试中看表达式 strSex==strAxSex则为true,细看strSex.charCodeAt(0)与strAxSex.charCodeAt(0)也是相等的,而strSex.charCodeA
var strSex="男" ;
在GB2312编码中,假设有另一变量strAxSex是从ActiveX控件中读出的BSTR值,原始值也是"男" ,这时做在javascript程序中做比较:strSex==strAxSex为false,也就是"男"!="男"。
但如果从VS2005调试中看表达式 strSex==strAxSex则为true,细看strSex.charCodeAt(0)与strAxSex.charCodeAt(0)也是相等的,而strSex.charCodeAt(0)与strAxSex.charCodeAt(0)也相等都为NaN。
再注意看vs2005变量值提示,可以看到strSex="□□“。原来是字符常量非unicode,导致strSex所赋值不同于"男"的unicode值。尝试把js文件另存为编码utf-8,再次运行,终于 strSex==strAxSex为true,程序运行与调试器表现一致,和日常逻辑也一致了。
有用 |
无用
在GB2312编码中,假设有另一变量strAxSex是从ActiveX控件中读出的BSTR值,原始值也是"男" ,这时做在javascript程序中做比较:strSex==strAxSex为false,也就是"男"!="男"。
但如果从VS2005调试中看表达式 strSex==strAxSex则为true,细看strSex.charCodeAt(0)与strAxSex.charCodeAt(0)也是相等的,而strSex.charCodeAt(0)与strAxSex.charCodeAt(0)也相等都为NaN。
再注意看vs2005变量值提示,可以看到strSex="□□“。原来是字符常量非unicode,导致strSex所赋值不同于"男"的unicode值。尝试把js文件另存为编码utf-8,再次运行,终于 strSex==strAxSex为true,程序运行与调试器表现一致,和日常逻辑也一致了。
猜你喜欢
您可能感兴趣的文章:
- javascript 设置文本框中焦点的位置
- javascript实现拖拽并替换网页块元素
- ExtJS Grid使用SimpleStore、多选框的方法
- Jquery中增加参数与Json转换代码
- ExtJS的FieldSet的column列布局
- 页面版文本框智能提示JS代码
- js url传值中文乱码之解决之道
- js trim函数 去空格函数与正则集锦
- div移动 输入框不能输入的问题
- ExtJS Window 最小化的一种方法
- JS获取dom 对象 ajax操作 读写cookie函数
- jquery中的$(document).ready()与window.onload的区别
- jQuery html()等方法介绍
- JQuery toggle使用分析
- JavaScript 读取图片实例代码
- javascript 随机抽奖程序代码
- javascript 图片放大效果函数
- JavaScript OOP类与继承
- JavaScript的eval JSON object问题