字符編碼就是將字節(jié)轉(zhuǎn)換為字符的一種方法。要驗(yàn)證或者顯示一個(gè) HTML 文檔,程序必須選擇一個(gè)字符編碼。HTML5 作者有三種方式設(shè)置字符編碼:
如果你在編寫 cgi 程序或者類似的程序,那么可以使用 HTTP Content-Type 頭設(shè)置任意字符編碼:
下面是一個(gè)簡(jiǎn)單的例子:
print "Content-Type: text/html; charset=utf-8\r\n";
可以使用帶有 charset 屬性的 <meta> 元素指定 HTML5 文檔前 512 個(gè)字節(jié)的編碼:
下面是簡(jiǎn)化的例子:
<meta charset="UTF-8">
盡管這種語法是被允許的,但上述語法需要使用 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 替換。
一個(gè)字節(jié)順序標(biāo)記(BOM)由數(shù)據(jù)流開頭的 U+FEFF 字符碼組成,它可以用作定義字節(jié)順序和編碼形式的簽名,主要是未標(biāo)記的明文文件。
許多 Windows 程序(包括 Windows 記事本)都會(huì)在保存為 UTF-8 的任意文檔開頭添加 0xEF, 0xBB, 0xBF。這就是 Unicode 字節(jié)順序標(biāo)記(BOM)的 UTF-8 編碼,通常被稱為 UTF-8 BOM,盡管它和字節(jié)順序沒有關(guān)系。
對(duì)于 HTML5 文檔,我們可以在文件的開頭使用 Unicode 字節(jié)順序標(biāo)記(BOM)字符。這個(gè)字符為使用的編碼提供了簽名。