首页 > 解决方案 > 由于变音符号,xml 格式不正确。

问题描述

我有一个带有声明的 xml 文件:

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

当我用 3 个不同的编辑器打开它时,我得到以下信息:

在此处输入图像描述

显然,有 3 种不同的表示。记事本给了我正确的符号,Notepad++ 给了我十六进制和 emacs 八进制代码。

我有一个 Perl 代码,用于测试 xml 是否格式正确。一旦 xml 有这些变音字符,xml 文件的格式就不是很好,无法加载到我的数据库中。当我删除所有变音符号(和希腊符号等)时,xml 文件格式正确,我可以将文件导入数据库中。

我的目标是有一个 xml 文件,我可以将它导入到数据库中,考虑变音符号(和希腊符号等)。

这种行为的原因是什么?它是在创建 xml 时引起的吗?

标签: xmlutf-8character-encodingdiacritics

解决方案


在我看来ä,您输入中的字符可能被编码为 xE4,这是 iso-8859-1(和 Windows CP-1252)中字符的表示,但不是 UTF-8 中的正确表示。您的三位编辑正在以不同的方式处理 XML 声明中声明的编码与实际编码之间的不一致。

通过确保 XML 声明中指定的编码与字符的实际编码匹配来解决此问题。

该问题可能是在首次创建 XML 文件时引入的,或者可能是由随后更改字符编码的某个进程引入的,而没有更改 XML 声明以匹配新编码。如果文件由不支持 XML 的进程转码,则可能会发生这种情况。


推荐阅读