.
.
.
.
.
在HTML中,为了使用某些预留字符(如<、>等等)或者中文乱码等问题,可以使用HTML字符实体编码或实体名来解决。
实体名称就是类似<、>这样的东西,虽然大部分主流浏览器都可以支持实体名,但是也不排除新老浏览器存在不兼容的问题,所以使用实体编码是一种比较靠谱的方案,无论浏览器的编码是什么,使用实体编码的文字都不会出现乱码。
那么字符与实体编码之间是怎样转换的呢?
且看代码:
1 <html> 2 <head> 3 <title>字符转HTML实体编码</title> 4 <script> 5 function $(id) {return document.getElementById(id);} 6 function htmlEncode(input) 7 { 8 var code = input.charCodeAt(); // 获得实体编码 9 var div = $("divCode"); 10 /* 11 * 实体编码的格式是:&#数字; 12 * & 是 & 13 * # 是 # 14 * code 用户输入的字的实体编码 15 * ; 是 ; 16 * 17 * 如果直接写成 "&#" + code + ";"; 的形式会被浏览器直接解析为对应的字符,从而失去了编码的作用。 18 */ 19 div.innerHTML = "&" + "#" + code + ";"; //String.fromCharCode(code); 解码 20 } 21 </script> 22 </head> 23 <body> 24 <input type="text" onchange="htmlEncode(this.value)"/> 25 <div id="divCode"></div> 26 </body> 27 </html>
使用 String.fromCharCode(code); 便可以将实体编码转换回字符。
其余的内容在代码注释中已经写得比较详细了,如果有什么疑问可以留言,共同研讨。
原创文章,允许转载,请注明出处:http://www.cnblogs.com/chuyuhuashi/ 谢谢。