XML 文檔可以包含非 ASCII 字元,比如挪威語 ? ? ?,或者法語 ê è é。
為了避免錯誤,需要規定 XML 編碼,或者將 XML 文件存為 Unicode。
XML 編碼錯誤
如果您載入一個 XML 文檔,您可以得到兩個不同的錯誤,表示編碼問題:
在文本內容中發現無效字元。
如果您的 XML 中包含非 ASCII 字元,且文件保存為沒有指定編碼的單位元組 ANSI(或 ASCII),您會得到一個錯誤。
單位元組編碼屬性的 XML 文件。
相同的單位元組沒有編碼屬性的 XML 文件。
將當前編碼切換為不被支持的指定編碼
如果您的 XML 文件保存為帶有指定的單位元組編碼(WINDOWS-1252、ISO-8859-1、UTF-8)的雙位元組 Unicode(或 UTF-16),您會得到一個錯誤。
如果您的 XML 文件保存為帶有指定的雙位元組編碼(UTF-16)的單位元組 ANSI(或 ASCII),您也會得到一個錯誤。
雙位元組沒有編碼的 XML 文件。
相同的雙位元組具有單位元組編碼的 XML 文件。
Windows 記事本
Windows 記事本默認會將文件保存為單位元組的 ANSI(ASCII)。
如果您選擇 “另存為…”,就可以指定 ANSI、UTF-8、Unicode(UTF-16)或 Unicode Big。
將下面的 XML 保存為 ANSI、UTF-8 和 Unicode(注意文檔不包含任何編碼屬性)。
嘗試將文件拖到您的瀏覽器,並查看結果。不同的瀏覽器會顯示不同的結果。
不同編碼的體驗:
結論
-
始終使用編碼屬性
-
使用支持編碼的編輯器
-
確保您知道編輯器使用什麼編碼
-
在您的編碼屬性中使用相同的編碼
TAG:程序員小新人學習 |