晓峰 Rotating Header Image

Posts from ‘二月, 2010’

javascript和html中unicode编码和字符转义的详解

本人之前已经对javascript中unicode编码进行了解释,请参照http://ulhoo.com/blog/?p=72。但在不是十分理解unicode和html转义的情况下,可能会误用,所以下面会对它们再做比较容易理解的解释: 1.html中的转义:在html中如果遇到转义字符(如“&nbsp;”),不管你的页面字符编码是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编码到字符的方法 [...]