javascript文件中的字符常量與所在的js文件字符編碼密切相關(guān),如下一段代碼:
var strSex="男" ;
在GB2312編碼中,假設(shè)有另一變量strAxSex是從ActiveX控件中讀出的BSTR值,原始值也是"男" ,這時做在javascript程序中做比較:strSex==strAxSex為false,也就是"男"!="男"。
但如果從VS2005調(diào)試中看表達(dá)式 strSex==strAxSex則為true,細(xì)看strSex.charCodeAt(0)與strAxSex.charCodeAt(0)也是相等的,而strSex.charCodeAt(0)與strAxSex.charCodeAt(0)也相等都為NaN。
再注意看vs2005變量值提示,可以看到strSex="□□“。原來是字符常量非unicode,導(dǎo)致strSex所賦值不同于"男"的unicode值。嘗試把js文件另存為編碼utf-8,再次運行,終于 strSex==strAxSex為true,程序運行與調(diào)試器表現(xiàn)一致,和日常邏輯也一致了。