溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

關(guān)于XML編碼基礎(chǔ)實例的相關(guān)介紹

發(fā)布時間:2020-04-25 16:51:40 來源:億速云 閱讀:437 作者:栢白 欄目:編程語言

XML文檔可以包含外文字符比如挪威語或者法語(中文當然也可以!這一部分還是不能照原文翻譯,下面有些內(nèi)容是我自己寫的)
為了讓你的解析器能夠明白這些字符,你必須在XML文檔中統(tǒng)一的字符編碼標準。
Windows 95/98 記事本
Windows 95/98 記事本不能以Unicode的編碼格式保存文件。
可以使用記事本來編輯和保存包含了外文字符的XML文檔 (比如:挪威語或者法語或者中文)
<?xml version="1.0"?>
<note>
<from>小奀</from>
<to>小林</to>
<message>晚上一起去火鍋呀</message>
</note>

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

在Windows 95/98 記事本中使用編碼
Windows 95/98 記事本編輯XML文件必須進行編碼屬性設(shè)置。  
為了避免發(fā)生錯誤,可以在XML文檔聲明中加上一個encoding屬性,指明此XML文檔的編碼類型,但是不要使用Unicode編碼。  
下面的編碼類型不會導(dǎo)致錯誤, 并且漢字顯示正常:
<?xml version="1.0" encoding="gb2312"?>

下面的編碼類型不會導(dǎo)致錯誤, 并且漢字顯示正常:
<?xml version="1.0" encoding="gbk"?>

下面的編碼類型不會導(dǎo)致錯誤, 并且漢字顯示不正常(亂碼):
<?xml version="1.0" encoding="windows-1252"?>

下面的編碼類型不會導(dǎo)致錯誤, 并且漢字顯示不正常(亂碼):
<?xml version="1.0" encoding="ISO-8859-1"?>

下面的編碼類型不會導(dǎo)致錯誤,并且漢字顯示正常:
<?xml version="1.0" encoding="UTF-8"?>

下面的編碼類型會導(dǎo)致錯誤:
<?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+中將不會出現(xiàn)錯誤,但如果你使用網(wǎng)景Netscape 6.2,就可能出錯。讀者比較 note_encode_none.xml 和 note_encode_none_u.xml這兩個文件,如果單獨看他們各自的源文件,是沒有區(qū)別的,但為什么一個能顯示,一個不能顯示呢?答案就是Unicode字符集。

Windows 2000 記事本編碼
Windows 2000記事本還可以以"UTF-16"編碼格式保存文件。
如果你在XML文檔中聲明了編碼屬性而又以Unicode編碼格式保存文件,將可能發(fā)生錯誤。
下面的代碼將會導(dǎo)致錯誤:
<?xml version="1.0" encoding="windows-1252"?>

下面的代碼將會導(dǎo)致錯誤:
<?xml version="1.0" encoding="ISO-8859-1"?>

下面的代碼將會導(dǎo)致錯誤:
<?xml version="1.0" encoding="UTF-8"?>

下面這個文件; note_encode_utf16_u.xml, 將會在IE5.0+中顯示正常,在網(wǎng)景Netscape 6.2瀏覽器中將會出現(xiàn)錯誤。
<?xml version="1.0" encoding="UTF-16"?>

錯誤信息
當時用IE5.0或者更高版本瀏覽XML文檔時,可能會遇到兩中不同的編碼錯誤:
在文本內(nèi)容中發(fā)現(xiàn)一個非法字符(An invalid character was found in text content)。
如果你的XML文檔和你的XML文檔的編碼格式不匹配就可能導(dǎo)致錯誤發(fā)生。通常情況是,XML文檔包含一些“非英文”字符,并且使用了單字節(jié)編碼的編輯器,而且沒有在XML文檔的聲明中設(shè)置XML文檔的編碼格式。  

不支持從當前的編碼格式轉(zhuǎn)換成另一種編碼格式(Switch from current encoding to specified encoding not supported)。
如果XML文檔以Unicode/UTF-16編碼格式保存,但是XML文檔的聲明中卻設(shè)置了編碼格式是一些單字節(jié)的編碼(比如 Windows-1252, ISO-8859-1 或者  UTF-8);或者XML文檔以單字節(jié)編碼格式保存,但是XML文檔的聲明中卻設(shè)置了編碼格式是一些Unicode/UTF-16的編碼形式,這樣兩種情況都會導(dǎo)致錯誤發(fā)生。
結(jié)論
結(jié)論:在保存XML文檔之前在XML文檔的聲明中設(shè)置文檔的編碼格式,我的一些關(guān)于避免錯誤發(fā)生的建議:
使用一種支持Unicode編碼格式的編輯器。  
確信你知道自己正在使用那種編碼格式。  
在XML文檔中使用屬性聲明設(shè)置編碼格式。   

以上就是關(guān)于XML編碼基礎(chǔ)實例的相關(guān)介紹的詳細內(nèi)容,更多請關(guān)注億速云其它相關(guān)文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI