XML 文檔可以包含非 ASCII 字符,比如法語。
為了避免錯誤,需要規定 XML 編碼,或者將 XML 文檔存為 Unicode。
XML 文檔可以包含非 ASCII 字符,比如法語。
為了避免錯誤,需要規定 XML 編碼,或者將 XML 文檔存為 Unicode。
Windows 記事本默認會將文件保存為單字節的 ANSI (ASCII)。
如果選取文件菜單中的“另存為”命令,就可以規定雙字節 Unicode (UTF-16)。
將下面的 XML 文件保存為 Unicode (注意文檔不包含任何 encoding 屬性):
<?xml version="1.0"?> <note> <from>John</from> <to>George</to> <message>French: êèé</message> </note>
上面的文件,note_encode_none_u.xml 不會出錯。但是如果規定了單字節編碼就會出錯。
下面的編碼(打開它),不會報錯:
<?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"?>
如果您試圖向 IE 中載入 XML 文檔,可能會得到兩種指示編碼問題的錯誤:
如果 XML 文檔中的某個字符與編碼屬性不匹配,您就會得到這個錯誤消息。通常,當 XML 文件中含有外國字符,且當文件使用類似記事本的單字節編碼編輯器保存,以及沒有指定編碼屬性時,您就會得到這個錯誤消息。
如果您的文件被保存為 Unicode/UTF-16,但是編碼屬性被指定為單字節編碼(比如 Windows-1252、ISO-8859-1 或者 UTF-8)時,那么您就會得到這個錯誤消息。或者當您的文檔被保存為單字節編碼,但編碼屬性被指定為雙字節編碼(比如 UTF-16)時,也會得到這個錯誤消息。
結論是:編碼屬性應當被指定為文檔被保存時所使用的編碼。我最好的避免錯誤的建議是: