XML 編碼
XML 文檔可以包含非ASCII 字符,比如挪威語aa,或者法語eee。
為了避免錯誤,需要規定XML 編碼,或者將XML 文件存為Unicode。
XML 編碼錯誤
如果您載入一個XML 文檔,您可以得到兩個不同的錯誤,表示編碼問題:
在文本內容中發現無效字符。
如果您的XML 中包含非ASCII 字符,且文件保存為沒有指定編碼的單字節ANSI(或ASCII),您會得到一個錯誤。
將當前編碼切換為不被支持的指定編碼
如果您的XML 文件保存為帶有指定的單字節編碼(WINDOWS-1252、ISO-8859-1、UTF-8)的雙字節Unicode(或UTF-16),您會得到一個錯誤。
如果您的XML 文件保存為帶有指定的雙字節編碼(UTF-16)的單字節ANSI(或ASCII),您也會得到一個錯誤。
Windows 記事本
Windows 記事本默認會將文件保存為單字節的ANSI(ASCII)。
如果您選擇"另存為...",就可以指定ANSI、UTF-8、Unicode(UTF-16)或Unicode Big。
將下面的XML 保存為ANSI、UTF-8 和Unicode(注意文檔不包含任何編碼屬性)。
<?xml version="1.0"?>
<note>
<from>Jani</from>
<to>Tove</to>
<message>Norwegian: aa. French: eee</message>
</note>
<note>
<from>Jani</from>
<to>Tove</to>
<message>Norwegian: aa. French: eee</message>
</note>
嘗試將文件拖到您的瀏覽器,並查看結果。 不同的瀏覽器會顯示不同的結果。
不同編碼的體驗:
<?xml version="1.0" encoding="us-ascii"?>
<?xml version="1.0" encoding="windows-1252"?>
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-16"?>
<?xml version="1.0" encoding="windows-1252"?>
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-16"?>
請嘗試:
結論
- 始終使用編碼屬性
- 使用支持編碼的編輯器
- 確保您知道編輯器使用什麼編碼
- 在您的編碼屬性中使用相同的編碼