XML文档的字符编码需在声明中通过encoding属性指定,如,且文件实际保存格式必须与声明一致,否则会导致解析错误或乱码;推荐使用UTF-8编码,因其支持多语言、兼容性好,避免使用GBK等非标准编码,并建议保存为“UTF-8 无BOM”格式以确保解析正常。

XML文档中的字符编码设置是为了确保文件中的文本能被正确解析和显示。编码声明通常出现在XML文件的开头,它告诉解析器该用哪种字符编码来读取内容。
XML编码声明格式
XML编码通过声明中的encoding属性指定,基本语法如下:
其中:
- version:表示XML版本,常用的是1.0
- encoding:指定字符编码,如UTF-8、UTF-16、ISO-8859-1等
如果未指定encoding属性,默认使用UTF-8编码(XML 1.0规范规定在无BOM情况下默认为UTF-8)。
常见字符编码选择
根据实际需求选择合适的编码方式:
- UTF-8:推荐使用,支持全球大多数字符,兼容ASCII,适合多语言环境
- UTF-16:适用于包含大量非拉丁字符的文档,占用空间比UTF-8大
- ISO-8859-1:仅支持西欧字符,不推荐用于含中文或其它Unicode字符的文档
若文档中包含中文、日文、韩文等字符,强烈建议使用UTF-8编码。
文件保存编码需与声明一致
XML声明中的encoding必须与文件实际保存的编码格式一致,否则会出现解析错误或乱码。
例如:
- 声明为encoding="UTF-8",则文件应以UTF-8格式保存
- 声明为encoding="GBK",文件也必须是GBK编码(注意:GBK不是标准XML编码名,部分解析器可能不支持)
使用文本编辑器或开发工具时,注意在“另存为”时选择正确的编码格式。
处理编码异常的方法
当遇到解析失败或乱码问题时,可检查以下几点:
- 确认XML声明中的encoding值是否正确
- 检查文件实际编码格式是否与声明一致(可用Notepad++、VS Code等工具查看)
- 避免使用非标准编码名称,如GB2312、GBK,建议转换为UTF-8并统一使用encoding="UTF-8"
- 注意BOM(字节顺序标记)的影响:UTF-8带BOM可能引起某些解析器问题,建议保存为“UTF-8 无BOM”格式
基本上就这些。只要声明准确、文件编码匹配,XML字符编码就不会出问题。UTF-8是目前最稳妥的选择。不复杂但容易忽略细节。










