DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML入門指南(15)XML編碼
XML入門指南(15)XML編碼
編輯:XML詳解     

<?XML version="1.0"?> <note> <from>小奀</from> <to>小林</to> <message>晚上一起去火鍋呀</message> </note>

  但是如果你用浏覽器打開這個用記事本編輯過的XML文檔,將會出現一個錯誤open it with IE 5.0。


在Windows 95/98 記事本中使用編碼

  Windows 95/98 記事本編輯XML文件必須進行編碼屬性設置。

  為了避免發生錯誤,可以在XML文檔聲明中加上一個encoding屬性,指明此XML文檔的編碼類型,但是不要使用Unicode編碼。

  下面的編碼類型不會導致錯誤,(用IE 5.0+浏覽器觀看), 並且漢字顯示正常:

<?XML version="1.0" encoding="gb2312"?>

  下面的編碼類型不會導致錯誤,(用IE 5.0+浏覽器觀看), 並且漢字顯示正常:

<?XML version="1.0" encoding="gbk"?>

  下面的編碼類型不會導致錯誤,(用IE 5.0+浏覽器觀看), 並且漢字顯示不正常(亂碼):

<?XML version="1.0" encoding="Windows-1252"?>

  下面的編碼類型不會導致錯誤,(用IE 5.0+浏覽器觀看), 並且漢字顯示不正常(亂碼):

<?XML version="1.0" encoding="ISO-8859-1"?>

  下面的編碼類型不會導致錯誤,(用IE 5.0+浏覽器觀看),並且漢字顯示正常:

<?XML version="1.0" encoding="UTF-8"?>

  下面的編碼類型會導致錯誤,(用IE 5.0+浏覽器觀看):

<?XML version="1.0" encoding="UTF-16"?>

使用Windows 2000 記事本

  Windows 2000 記事本可以以Unicode編碼格式保存文件。

  Windows 2000 的記事本支持Unicode字符集。如果使用Win2000的記事本以Unicode的編碼格式保存XML文檔(請注意這裡在XML聲明中沒有編碼信息):

<?XML version="1.0"?> <note>
<from>小奀</from>
<to>小林</to>
<message>晚上一起去火鍋呀</message>
</note>

  下面這個文件; note_encode_none_u.xml, 在IE5.0+中將不會出現錯誤,但如果你使用網景Netscape 6.2,就可能出錯。讀者比較 note_encode_none.xml 和 note_encode_none_u.XML這兩個文件,如果單獨看他們各自的源文件,是沒有區別的,但為什麼一個能顯示,一個不能顯示呢?答案就是Unicode字符集。


Windows 2000 記事本編碼

  Windows 2000記事本還可以以"UTF-16"編碼格式保存文件。

  如果你在XML文檔中聲明了編碼屬性而又以Unicode編碼格式保存文件,將可能發生錯誤。

  下面的代碼將會導致錯誤 (用浏覽器察看):

<?XML version="1.0" encoding="Windows-1252"?>

  下面的代碼將會導致錯誤 (用浏覽器察看):

<?XML version="1.0" encoding="ISO-8859-1"?>

  下面的代碼將會導致錯誤 (用浏覽器察看):

<?XML version="1.0" encoding="UTF-8"?>

  下面這個文件; note_encode_utf16_u.XML, 將會在IE5.0+中顯示正常,在網景Netscape 6.2浏覽器中將會出現錯誤。

<?XML version="1.0" encoding="UTF-16"?>

錯誤信息

  當時用IE5.0或者更高版本浏覽XML文檔時,可能會遇到兩中不同的編碼錯誤:

  在文本內容中發現一個非法字符(An invalid character was found in text content)。

  如果你的XML文檔和你的XML文檔的編碼格式不匹配就可能導致錯誤發生。通常情況是,XML文檔包含一些“非英文”字符,並且使用了單字節編碼的編輯器,而且沒有在XML文檔的聲明中設置XML文檔的編碼格式。 
不支持從當前的編碼格式轉換成另一種編碼格式(Switch from current encoding to specifIEd encoding not supported)。

  如果XML文檔以Unicode/UTF-16編碼格式保存,但是XML文檔的聲明中卻設置了編碼格式是一些單字節的編碼(比如 Windows-1252, ISO-8859-1 或者 UTF-8);或者XML文檔以單字節編碼格式保存,但是XML文檔的聲明中卻設置了編碼格式是一些Unicode/UTF-16的編碼形式,這樣兩種情況都會導致錯誤發生。


結論

  結論:在保存XML文檔之前在XML文檔的聲明中設置文檔的編碼格式,我的一些關於避免錯誤發生的建議:

  • 使用一種支持Unicode編碼格式的編輯器。
  • 確信你知道自己正在使用那種編碼格式。
  • 在XML文檔中使用屬性聲明設置編碼格式。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved