“編碼”這個(gè)詞對(duì)于碼農(nóng)來說一定不陌生,但是你知道編碼在HTML中的作用嗎?HTML中需要進(jìn)行編碼的地方主要有兩個(gè),一個(gè)是在URL中,另一個(gè)是在HTML代碼中。在這篇文章中我們將主要介紹HTML代碼中的編碼和解碼相關(guān)的知識(shí)。
在HTML中,字符有兩種,一種是保留字符,一種是非保留字符。保留字符是指在HTML中有特殊含義的字符,如“<”、“>”、“&”、“=”等等,如果需要在HTML代碼中使用這些保留字符,需要進(jìn)行編碼處理。比如需要在HTML中顯示文本“5>3”,代碼應(yīng)該寫成“5>3”,其中“>”就是“>”的編碼表示。 在HTML中編碼有兩種方式,一種是使用命名實(shí)體,比如上面例子中用到的“gt”就是“>”的命名實(shí)體,另一種是使用數(shù)字實(shí)體,比如“>”的數(shù)字實(shí)體就是“>”。兩種方式的實(shí)現(xiàn)方法基本相同。
在編寫HTML代碼時(shí),如果需要使用通用字符集以外的字符,需要進(jìn)行Unicode編碼,將字符轉(zhuǎn)換成“十進(jìn)制編碼值;”或“十六進(jìn)制編碼值;”。例如英文中的字母“a”在Unicode編碼中的十進(jìn)制編碼值為97,十六進(jìn)制編碼值為61。如果需要在HTML代碼中顯示這個(gè)字符,就需要使用“a”或“a”。
<html> <head> <title>HTML編碼解碼示例</title> </head> <body> <p>這是一個(gè)HTML編碼解碼的示例:5>3</p> <p>字符a的Unicode編碼是: a 或者 a</p> </body> </html>
解碼和編碼是相對(duì)的,解碼是將編碼后的字符重新轉(zhuǎn)換成可讀的字符,也就是將上面的“>”轉(zhuǎn)換成“>”。在HTML中,可以使用JavaScript中的內(nèi)置函數(shù)unescape()來進(jìn)行解碼。
<script> var str = "a"; var decodedStr = unescape(str); //decodedStr的值為"a" </script>
總結(jié)一下,HTML編碼主要用來將保留字符轉(zhuǎn)換成編碼實(shí)體,或?qū)⒆址D(zhuǎn)換為Unicode編碼,而解碼主要用來將編碼實(shí)體轉(zhuǎn)換成可讀字符,或?qū)nicode編碼轉(zhuǎn)換成字符。