創建一個xml時 如果<?xml version="1.0" encoding="GB2312" ?>更改encoding的值為UTF-8,保存后查看該文件會發現文件的編碼屬性會變成UTF-8,再改成GB2312,編碼又變成了GB2312.
對這個問題,很好奇,於是去查了下,W3C定義了三條XML解析器如何正確讀取XML文件的編碼的規則,有如下說明
1.一般文件定義時都會帶文件格式(即BOM,BOM就是 byte order mark的縮寫 ,字節順序標記,一般來說,如果保存為unicode格式,則包含BOM,ANSI則無),如果有bom,查看編碼時就已bom為准
2,如果沒有BOM,就查看XML聲明的編碼屬性即第一行的encoding
3,如果上述兩個都沒有,就假定XML文擋采用UTF-8編碼