xml - 由于变音符号,xml 格式不正确。
问题描述
我有一个带有声明的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
当我用 3 个不同的编辑器打开它时,我得到以下信息:
显然,有 3 种不同的表示。记事本给了我正确的符号,Notepad++ 给了我十六进制和 emacs 八进制代码。
我有一个 Perl 代码,用于测试 xml 是否格式正确。一旦 xml 有这些变音字符,xml 文件的格式就不是很好,无法加载到我的数据库中。当我删除所有变音符号(和希腊符号等)时,xml 文件格式正确,我可以将文件导入数据库中。
我的目标是有一个 xml 文件,我可以将它导入到数据库中,考虑变音符号(和希腊符号等)。
这种行为的原因是什么?它是在创建 xml 时引起的吗?
解决方案
在我看来ä
,您输入中的字符可能被编码为 xE4,这是 iso-8859-1(和 Windows CP-1252)中字符的表示,但不是 UTF-8 中的正确表示。您的三位编辑正在以不同的方式处理 XML 声明中声明的编码与实际编码之间的不一致。
通过确保 XML 声明中指定的编码与字符的实际编码匹配来解决此问题。
该问题可能是在首次创建 XML 文件时引入的,或者可能是由随后更改字符编码的某个进程引入的,而没有更改 XML 声明以匹配新编码。如果文件由不支持 XML 的进程转码,则可能会发生这种情况。
推荐阅读
- excel - 删除值 < 500 和舍入值 > 500 VB.net 的行?
- oracle - 如何将 CLOB 类型的参数传递给具有 100k+ 长度字符串的 Oracle 存储过程?
- python - 我们什么时候应该在我们的正则表达式中使用组?这里真正的优势是什么?
- winforms - C# Panel AutoScroll down using chromium
- swiftui - 如何获取在 TabView 中选择了哪个视图的值?
- sql - 使用 BigQuery 访问 Google Analytics 自定义维度
- excel - 连接特定列的字符串 (VBA)
- python - 无法在 Python 中的 Flask 网页上显示字典的值
- salesforce - 触发器以限制特定类型的重复记录
- php - 将自定义字段添加到“编辑供应商”页面 - Woocommerce 产品供应商