要正確顯示一個 HTML 頁面,瀏覽器必須知道要使用的字符集(字符編碼)。
HTML 字符集
在 HTML 中,正確的字符編碼是什么?
HTML5 中默認的字符編碼是 UTF-8。
這并非總是如此。早期網絡的字符編碼是 ASCII 碼。
后來,從 HTML 2.0 到 HTML 4.01,ISO-8859-1 被認定為標準。
隨著 XML 和 HTML5 的出現,UTF-8 也終于到來了,解決了大量的字符編碼問題。
下面是關于字符編碼標準的簡短概述。
在開始的時候:ASCII
為了規范字母數字字符的存儲,創建了 ASCII(全稱 American Standard Code for Information Interchange)。它為每個存儲字符定義了一個獨特的二元 7 位數字,支持 0-9 數字,大/小寫英文字母(a-z、A-Z)和一些特殊的字符,比如 ! $ + – ( ) @。
由于 ASCII 使用一個字節(7 位表示字符,1 位表示傳輸奇偶控制),所以它只能表示 128 個不同的字符。這些字符中有 32 個被保留作為其他控制目的使用。
ASCII 的最大的缺點是,它排除了非英文字母。
ASCII 今天仍然在廣泛使用,尤其是在大型計算機系統中。
如需深入了解 ASCII,請查看完整的 ASCII 參考手冊。
在 Windows 中:ANSI
ANSI(也稱為 Windows-1252),是 Windows 95 及其之前的 Windows 系統中默認的字符集。
ANSI 是 ASCII 的擴展,它加入了國際字符。它使用一個完整的字節(8 位)來表示 256 個不同字符。
自從 ANSI 成為 Windows 中默認的字符集,所有的瀏覽器都支持 ANSI。
如需深入了解 ANSI,請查看完整的 ANSI 參考手冊。
ISO 字符集
ISO 字符集是國際標準組織 (ISO) 針對不同的字母表/語言定義的標準字符集。
下面列出了世界各地使用的不同字符集:
在 HTML 4 中:ISO-8859-1
由于大多數國家使用 ASCII 以外的字符,在 HTML 2.0 標準中,默認的字符編碼更改為 ISO-8859-1。
ISO-8859-1 是 ASCII 的擴展,它加入了國際字符。與 ANSI 一樣,它使用一個完整的字節(8 位)來表示 256 個不同字符。
如果 HTML 4 網頁使用了不同于 ISO-8859-1 的字符集,則需要在 標簽中指定,如下所示:
示例代碼
如需深入了解 ISO-8859-1,請查看完整的 ISO-8859-1 參考手冊。
Unicode 標準
由于上面列出的字符集都有容量限制,而且不兼容多語言環境,Unicode 聯盟開發了 Unicode 標準。
Unicode 標準涵蓋了世界上的所有字符、標點和符號。
不論是何種平臺、程序或語言,Unicode 都能夠進行文本數據的處理、存儲和交換。
Unicode 聯盟
Unicode 聯盟開發了 Unicode 標準。他們的目標是用標準的 Unicode 轉換格式 (UTF) 來取代現有的字符集。
Unicode 標準已經獲得了成功,在 XML、Java、ECMAScript (JavaScript)、LDAP、CORBA 3.0、WML 中,Unicode 已經得到了實現。在許多操作系統以及所有的現代瀏覽器中,Unicode 同樣得到了支持。
Unicode 聯盟與領導性的標準發展組織進行合作,比如 ISO、W3C 以及 ECMA。
Unicode 可以被不同的字符集兼容。最常用的編碼方式是 UTF-8 和 UTF-16:
提示: 最前面的 256 個 Unicode 字符集字符對應于 256 個 ISO-8859-1 字符。
提示: 所有 HTML 4 瀏覽器都已支持 UTF-8,而所有 XHTML 和 XML 處理器支持 UTF-8 和 UTF-16!
在 HTML5 中:Unicode(UTF-8)
由于以上所列的字符集是有限的,在多語言環境中是不兼容的,所以 Unicode 聯盟(Unicode Consortium)開發了 Unicode 標準(Unicode Standard)。
Unicode 標準覆蓋了(幾乎)所有的字符、標點符號和符號。
Unicode 使文本的處理、存儲和運輸,獨立于平臺和語言。
HTML5 中默認的字符編碼是 UTF-8。
如需深入了解 Unicode(UTF-8),請查看完整的 Unicode 參考手冊。