這篇文章主要介紹了xml中encoding的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)公司長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為額敏企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè),額敏網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。以前理解的是,xml里的encoding里定義必須與文件格式相匹配。即有這樣的xml Introduction xml encoding="utf-8" .. ?>,那么,文件格式必須是一個(gè)utf-8文件,即文件的前兩個(gè)字節(jié)要是一個(gè)utf-8頭FF FE。(后來(lái)才弄清楚,F(xiàn)F FE不是utf-8的BOM。。就是說(shuō)我的錯(cuò)誤理解持續(xù)了相當(dāng)長(zhǎng)一段時(shí)間。。)
下面把討論的幾個(gè)階段大概說(shuō)一下。
剛開(kāi)始討論時(shí),我很肯定的告訴他,encoding的值必須和文件格式(即BOM,BOM就是 byte order mark的縮寫)相匹配,不然在解析XML時(shí),可能會(huì)出現(xiàn)(比如文檔含有某個(gè)UNICODE字符,而encoding或BOM指定的格式不匹配,就會(huì)出錯(cuò),當(dāng)時(shí)我是這樣的意思),然后他又告訴我,好像不是這樣,我用DELPHI創(chuàng)建的XML文件,沒(méi)有BOM,XML里面有中文內(nèi)容,encoding里指定的是UTF-8,用IE可以正常打開(kāi)啊。
他在發(fā)現(xiàn)他所創(chuàng)建的XML文件沒(méi)有BOM時(shí),有個(gè)有趣的地方,就是用UE打開(kāi)這類含有UNICODE字符的文件時(shí),UE會(huì)自動(dòng)在文件前面加上FF FE,使得文件可以正常顯示,所以原本沒(méi)有BOM的文件,在UE下的十六進(jìn)制下瀏覽,會(huì)看到多了個(gè)BOM,這個(gè)功能可以在UE的OPTIONS里去掉的,想知道的可以自己去找找。
然后我有點(diǎn)大頭了,怎么會(huì)這樣呢,然后想啊想,突然他發(fā)了一條信息過(guò)來(lái),內(nèi)容如下:
W3C定義了三條XML解析器如何正確讀取XML文件的編碼的規(guī)則:
1,如果文擋有BOM(字節(jié)順序標(biāo)記,一般來(lái)說(shuō),如果保存為unicode格式,則包含BOM,ANSI則無(wú)),就定義了文件編碼
2,如果沒(méi)有BOM,就查看XML聲明的編碼屬性
3,如果上述兩個(gè)都沒(méi)有,就假定XML文擋采用UTF-8編碼
有了這三條規(guī)則,那這個(gè)規(guī)則就清楚多了。
首先,XML解析器根據(jù)文件的BOM來(lái)解析文件;如果沒(méi)找到BOM,由用XML里的encoding屬性指定的編碼;如果xml里encoding沒(méi)指定的話,就默認(rèn)用utf-8來(lái)解析文檔。然后又可以推出,BOM和ENCODING都有的話,則以BOM指定的為準(zhǔn)。
啊!突然覺(jué)得有標(biāo)準(zhǔn)文檔多好!雖然是那么的理所當(dāng)然。
至此,終于把xml里的encoding和文件格式的關(guān)系弄懂了。雖然這篇記錄只有那幾百個(gè)字內(nèi)容,但是我們當(dāng)時(shí)在討論的時(shí)候,總時(shí)間差不多花了2個(gè)小時(shí)。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“xml中encoding的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計(jì)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。