.
.
.
.
.
在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/ 謝謝。