在設計和開發網頁時,需要用到一些特殊符號,比如:©,®,℃,¥,⅜ 等等,有些上網找半天不一定能找到。HTML特殊符號編碼有很多種 unicode、十六進位碼(hex code),html 實體編碼(entity code),還有我們熟知的html 實體(html entity) ,為了在css content屬性中使用,還有對應的 css code。
你可以在HTML標簽中直接插入十六進位碼(hex code),html 實體編碼(entity code)或者 html 實體(html entity)。在css content屬性中使用則應該使用對應的 css code。需要特別注意的是:根據字體不同,部分符號顯示有所不同。在項目應用中,有些時候需要將 html 和 html code進行轉換,這里提供互轉的兩個方法:
//JavaScript 代碼
function html_encode(str) {
var s = '';
if (str.length == 0) return '';
s = str.replace(/&/g,'&');
s = s.replace(/</g,'<');
s = s.replace(/>/g,'>');
s = s.replace(/ /g,' ');
s = s.replace(/\'/g,''');
s = s.replace(/\"/g,'"');
s = s.replace(/\n/g,"<br>");
return s;
}
function html_decode(str) {
var s = "";
if (str.length==0) return '';
s = str.replace(/&/g,'&');
s = s.replace(/</g,'<');
s = s.replace(/>/g,'>');
s = s.replace(/ /g,' ');
s = s.replace(/'/g,'\'');
s = s.replace(/"/g,'\"');
return s;
}
使用DOM 的 innerHTML 和 textContent 也可以實現轉換,方法是動態創建一個容器標簽元素,如 DIV,將要轉換的字符串設置為這個元素的 innerText,然后返回這個元素的 innerHTML,即得到經過 HTML 編碼轉換的字符串。
//JavaScript 代碼
function html_encode(html) {
return document.createElement('div').appendChild(document.createTextNode(html)).parentNode.innerHTML;
}
function html_decode(html) {
var a = document.createElement('div');
a.innerHTML = html;
return a.textContent;
}
這種方法有一個問題就是對於單引號’和雙引號”不會進行轉義處理,對於這種方法使用的時候就要非常注意了。
HTML Arrows 整理了大部分網站常用到的特殊符號,供大家參考使用:https://www.toptal.com/designers/htmlarrows/
由於篇幅問題,《HTML特殊字符編碼對照表》分兩篇寫
請參照前兩篇文章:
https://www.22vd.com/33993.html