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

2019-12-25,,,

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,程序运行与调试器表现一致,和日常逻辑也一致了。

您可能感兴趣的文章:

  • JS字符串长度判断,超出进行自动截取的实例(支持中文)
  • JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
  • JavaScript过滤字符串中的中文与空格方法汇总
  • 教你如何使用PHP输出中文JSON字符串
  • JS判断字符串长度的5个方法(区分中文和英文)
  • js计算字符串长度包含的中文是utf8格式
  • 中文字符串截取的js函数代码
  • 用javascript实现截取字符串包含中文处理的函数
  • js substr支持中文截取函数代码(中文是双字节)
  • JS实现含有中文字符串的友好截取功能分析

《Javascript 中文字符串处理额外注意事项.doc》

下载本文的Word格式文档,以方便收藏与打印。