您好,登錄后才能下訂單哦!
這篇文章主要介紹了xml中encoding的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
以前理解的是,xml里的encoding里定義必須與文件格式相匹配。即有這樣的xml Introduction<? xml encoding="utf-8" .. ?>,那么,文件格式必須是一個utf-8文件,即文件的前兩個字節要是一個utf-8頭FF FE。(后來才弄清楚,FF FE不是utf-8的BOM。。就是說我的錯誤理解持續了相當長一段時間。。)
下面把討論的幾個階段大概說一下。
剛開始討論時,我很肯定的告訴他,encoding的值必須和文件格式(即BOM,BOM就是 byte order mark的縮寫)相匹配,不然在解析XML時,可能會出現(比如文檔含有某個UNICODE字符,而encoding或BOM指定的格式不匹配,就會出錯,當時我是這樣的意思),然后他又告訴我,好像不是這樣,我用DELPHI創建的XML文件,沒有BOM,XML里面有中文內容,encoding里指定的是UTF-8,用IE可以正常打開啊。
他在發現他所創建的XML文件沒有BOM時,有個有趣的地方,就是用UE打開這類含有UNICODE字符的文件時,UE會自動在文件前面加上FF FE,使得文件可以正常顯示,所以原本沒有BOM的文件,在UE下的十六進制下瀏覽,會看到多了個BOM,這個功能可以在UE的OPTIONS里去掉的,想知道的可以自己去找找。
然后我有點大頭了,怎么會這樣呢,然后想啊想,突然他發了一條信息過來,內容如下:
W3C定義了三條XML解析器如何正確讀取XML文件的編碼的規則:
1,如果文擋有BOM(字節順序標記,一般來說,如果保存為unicode格式,則包含BOM,ANSI則無),就定義了文件編碼
2,如果沒有BOM,就查看XML聲明的編碼屬性
3,如果上述兩個都沒有,就假定XML文擋采用UTF-8編碼
有了這三條規則,那這個規則就清楚多了。
首先,XML解析器根據文件的BOM來解析文件;如果沒找到BOM,由用XML里的encoding屬性指定的編碼;如果xml里encoding沒指定的話,就默認用utf-8來解析文檔。然后又可以推出,BOM和ENCODING都有的話,則以BOM指定的為準。
啊!突然覺得有標準文檔多好!雖然是那么的理所當然。
至此,終于把xml里的encoding和文件格式的關系弄懂了。雖然這篇記錄只有那幾百個字內容,但是我們當時在討論的時候,總時間差不多花了2個小時。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“xml中encoding的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。