创建一个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编码