字元集探測
此條目需要精通或熟悉電腦科學的編者參與及協助編輯。 (2010年10月16日) |
字元編碼探測、字元集探測又稱為頁碼檢測是個啟發式猜測代表文字的一系列位元組的字元編碼。其演算法通常依據對位元組樣式的統計分析。這並不是一個萬無一失的方法因為它依賴於統計資料——比如有些Windows版本會誤把ASCII編碼的"Bush hid the facts"當作中文UTF-16LE。
為數不多的能可靠探測的情況之一是探測UTF-8。這是因為UTF-8中有大量的無效位元組序列,所以當其他編碼方式使用位元組中的高位bit時極不可能通過UTF-8有效性測試。不幸的是不完善的字元集探測程式不優先進行可靠的UTF-8測試於是把UTF-8定為其他編碼。
其它的編碼識別方式
由於字元集探測的不可靠,所以通常是用屬性標籤去註明是用何種編碼。[1]
- 在HTML的
<head></head>
區塊裡
例如在HTML檔案中使用一個meta
element去標示出編碼種類:
在HTML5使用
<meta charset="utf-8" />
相當於HTML4使用
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
也可以在HTTP傳輸檔案時,在HTTP檔頭裡使用Content-type通知給瀏覽器知道使用何種編碼,以使瀏覽器能正確的顯示出內容。[2]
- 在asp輸出頁面前使用
Response.Charset="utf-8"
相當於使用
Response.AddHeader "Content-Type", "text/html;charset=utf-8"
- 在JSP輸出頁面前使用
<%@ page contentType="text/html; charset=utf-8" %>
- 在PHP輸出頁面前使用
header('Content-type: text/html; charset=utf-8');
參考資料
- ^ Declaring character encodings in HTML (頁面存檔備份,存於網際網路檔案館) - W3C
- ^ Setting the HTTP charset parameter (頁面存檔備份,存於網際網路檔案館) - W3C
相關
- Unicode國際化組件 - A library that can perform charset detection.