xml由于音素字符而格式不正确。

时间:2018-11-10 13:41:03

标签: xml utf-8 character-encoding diacritics

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

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

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

enter image description here

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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