Javascript 中文字符串處理額外注意事項(xiàng)
更新時(shí)間:2009年11月15日 01:29:22 作者:
javascript文件中的字符常量與所在的js文件字符編碼密切相關(guān),如下一段代碼
var strSex="男" ;
在GB2312編碼中,假設(shè)有另一變量strAxSex是從ActiveX控件中讀出的BSTR值,原始值也是"男" ,這時(shí)做在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,再次運(yùn)行,終于 strSex==strAxSex為true,程序運(yùn)行與調(diào)試器表現(xiàn)一致,和日常邏輯也一致了。
在GB2312編碼中,假設(shè)有另一變量strAxSex是從ActiveX控件中讀出的BSTR值,原始值也是"男" ,這時(shí)做在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,再次運(yùn)行,終于 strSex==strAxSex為true,程序運(yùn)行與調(diào)試器表現(xiàn)一致,和日常邏輯也一致了。
您可能感興趣的文章:
- JS字符串長(zhǎng)度判斷,超出進(jìn)行自動(dòng)截取的實(shí)例(支持中文)
- JS實(shí)現(xiàn)對(duì)中文字符串進(jìn)行utf-8的Base64編碼的方法(使其與Java編碼相同)
- JavaScript過濾字符串中的中文與空格方法匯總
- 教你如何使用PHP輸出中文JSON字符串
- JS判斷字符串長(zhǎng)度的5個(gè)方法(區(qū)分中文和英文)
- js計(jì)算字符串長(zhǎng)度包含的中文是utf8格式
- 中文字符串截取的js函數(shù)代碼
- 用javascript實(shí)現(xiàn)截取字符串包含中文處理的函數(shù)
- js substr支持中文截取函數(shù)代碼(中文是雙字節(jié))
- JS實(shí)現(xiàn)含有中文字符串的友好截取功能分析
相關(guān)文章
JavaScript其他類型的值轉(zhuǎn)換為布爾值的規(guī)則詳解
在JavaScript中,所有的值在邏輯上下文中都會(huì)被轉(zhuǎn)換為布爾類型(Boolean),理解這些轉(zhuǎn)換規(guī)則對(duì)開發(fā)者來說至關(guān)重要,尤其是在條件判斷、短路運(yùn)算、邏輯非(!)等場(chǎng)景下,正確掌握布爾轉(zhuǎn)換可以避免潛在的bug,本文將詳細(xì)介紹 JavaScript 其他類型的值是如何轉(zhuǎn)換為布爾值的2025-04-04
基于js實(shí)現(xiàn)數(shù)組相鄰元素上移下移
這篇文章主要介紹了基于js實(shí)現(xiàn)數(shù)組相鄰元素上移下移,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
js中判斷兩個(gè)數(shù)組對(duì)象是否完全相等
這篇文章主要介紹了js中判斷兩個(gè)數(shù)組對(duì)象是否完全相等方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
IE7中javascript操作CheckBox的checked=true不打勾的解決方法
在IE7下,生成的Checkbox無法正確的打上勾。 原因是 chkbox控件還沒初始化(appendChild),就開始操作它的結(jié)果2009-12-12
js事件驅(qū)動(dòng)機(jī)制 瀏覽器兼容處理方法
下面小編就為大家?guī)硪黄猨s事件驅(qū)動(dòng)機(jī)制 瀏覽器兼容處理方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07
JavaScript實(shí)現(xiàn)拼圖式滑塊驗(yàn)證功能
滑塊驗(yàn)證碼是在網(wǎng)站、APP等應(yīng)用中常見的一種驗(yàn)證方式,通過按照一定規(guī)則滑動(dòng)滑塊到指定位置完成驗(yàn)證,才可以進(jìn)行下一步操作,本文給大家分享基于JavaScript實(shí)現(xiàn)拼圖式滑塊驗(yàn)證功能,感興趣的朋友一起看看吧2022-06-06

