XML 編碼

2018-02-09 17:56 更新

XML 編碼

當 XML 處理器讀取到 XML 文檔時,它編碼依賴于編碼的類型的文件,因此,我們需要指定 XML 聲明的編碼類型。

XML 文檔可以包含非 ASCII 字符,比如挪威語 ? ? ?,或者法語 ê è é。

為了避免錯誤,需要規(guī)定 XML 編碼,或者將 XML 文件存為 Unicode。


XML 編碼錯誤

如果您載入一個 XML 文檔,您可以得到兩個不同的錯誤,表示編碼問題:

在文本內(nèi)容中發(fā)現(xiàn)無效字符。

如果您的 XML 中包含非 ASCII 字符,且文件保存為沒有指定編碼的單字節(jié) ANSI(或 ASCII),您會得到一個錯誤。

單字節(jié)編碼屬性的 XML 文件。

相同的單字節(jié)沒有編碼屬性的 XML 文件

將當前編碼切換為不被支持的指定編碼

如果您的 XML 文件保存為帶有指定的單字節(jié)編碼(WINDOWS-1252、ISO-8859-1、UTF-8)的雙字節(jié) Unicode(或 UTF-16),您會得到一個錯誤。

如果您的 XML 文件保存為帶有指定的雙字節(jié)編碼(UTF-16)的單字節(jié) ANSI(或 ASCII),您也會得到一個錯誤。

雙字節(jié)沒有編碼的 XML 文件。

相同的雙字節(jié)具有單字節(jié)編碼的 XML 文件。


Windows 記事本

Windows 記事本默認會將文件保存為單字節(jié)的 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: ???. French: êèé</message>
</note>

嘗試將文件拖到您的瀏覽器,并查看結(jié)果。不同的瀏覽器會顯示不同的結(jié)果。

不同編碼的體驗:

<?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"?>

請嘗試:

帶有正確編碼的保存

帶有錯誤編碼的保存



結(jié)論

  • 始終使用編碼屬性
  • 使用支持編碼的編輯器
  • 確保您知道編輯器使用什么編碼
  • 在您的編碼屬性中使用相同的編碼
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號