【轉】javascript和html中unicode編碼和字符轉義的詳解


不是十分理解unicode和html轉義的情況下,可能會誤用,所以下面會對它們再做比較容易理解的解釋:

1.html中的轉義:在html中如果遇到轉義字符(如“ ”),不管你的頁面字符編碼是utf-8亦或者是GB2312,都會直接打印成相應的字符;而當遇到(如:“\u8981”【此處的8981是16進制值】)時,則不會打印成相應字符。

/*
 *html標記的轉義
 *@example
 *<p>Hello World!</p>
 *       ||等價於
 *<p>Hello&nbsp;World!</p>
 *       ||等價於
 *<p>Hello&#160;World!</p>*/
"&nbsp;" == "&#160;"; //false
"&nbsp;".length == 6; //true

2.html中的unicode編碼:(如:”&#160;”,【此處的160是10進制值】)

3.javascript內的unicode編碼:當遇到unicode編碼時(如:“\u8981”),則會打印成相應的字符;而在javasript標簽中,不會對轉義字符進行轉義(如“&nbsp;&#160;”)

/*
 *javascript中unicode編碼
 *@example
 *"\u8981" == "要"; //true
 */
"\u8981".length == 1; //true

4.javascript中的轉義:(如:”\n”會轉義成換行符)

5.javascript中unicode編碼和字符的相互轉化

/*
 *unicode編碼和字符相互轉化
 */
"要".charCodeAt() == 35201; //true,35201為10進制值
String.fromCharCode(35201) == "要"; //true,35201為10進制值
"\u89" + "81" == "要"; //false,值為"u8981",是由於"\u"會轉義成"u"

//從unicode編碼到字符的方法
eval("(\"\u89" + "81\")") == "要"; //true,8981為16進制值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM