2015-01-01 25 views
0

大多數XML文檔,如RSS Feed,開始了開場白:爲什麼在XML文檔中有「編碼」屬性?

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

但我不能明白的是爲什麼這是必要的,因爲如果應用程序解析XML和寫着「編碼」的價值,它已經是讀取文本,用應用程序的編碼解碼。

+0

可能的重複[在XML頭中有什麼用''編碼'?](http://stackoverflow.com/questions/5165347/what-use-is-the-encoding-in-the-xml-header ) –

回答

-1

,因爲如果應用程序解析XML和寫着「編碼」的價值,它已經閱讀文本,

這未必是真實的。 XML解析器將讀取字節,直到第一個新行(這就是爲什麼xml聲明必須始終位於xml文件的第一行),將其轉換爲文本以解析編碼,然後讀取剩餘的字節使用指定的編碼。

+0

甜。任何XML解析器實現,我可以看到這種行爲?我的意思是開源。第一行的編碼是否有規範? – Croll

+0

重複問題的答案已鏈接到xml標準,該標準描述瞭如何完成此操作:http://stackoverflow.com/a/5165423/676877 –

+0

此答案並不準確。新的產品線與它無關。如果編碼不是utf-8或utf-16,則需要一個序言。序言可以在前兩個或四個字節的數據中標識。基本上,我們的目標是閱讀'<?xml'的蠻力。這一切都覆蓋在xml規範中。 http://www.w3.org/TR/REC-xml/#sec-guessing –