当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Javascript 中文字符串处理额外注意事项

Javascript
Prototype ObjectRange对象学习
Prototype Number对象 学习
Prototype Enumerable对象 学习
Prototype Template对象 学习
Prototype PeriodicalExecuter对象 学习
Prototype Array对象 学习
Prototype Hash对象 学习
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
js计算页面刷新的次数
一个cssQuery对象 javascript脚本实现代码
一个可以随意添加多个序列的tag函数
javascript 三级下拉选择菜单Levels对象
JavaScript 进度条实现代码(Firefox等相似浏览器下不支持)
javascript 表单规则集合对象
从基础开始建立一个JS代码库
javascript Base类 包含基本的方法
js 代码集(学习js的朋友可以看下)
模仿jQuery each函数的链式调用
JavaScript 就地编辑HTML节点实现代码
JavaScript 动态生成方法的例子

Javascript 中文字符串处理额外注意事项


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 344 ::
收藏到网摘: n/a

javascript文件中的字符常量与所在的js文件字符编码密切相关,如下一段代码 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,程序运行与调试器表现一致,和日常逻辑也一致了。