Relax OF 解析器错误

Relax NG parser error

我正在尝试根据 .rng 验证我的 .xml,但我一直收到此错误

 parser error : Input is not proper UTF-8, indicate encoding !
Bytes: 0xEA 0x63 0x68 0xE9
            <name>Ev▒ch▒ of Seeet Di▒</name>   //here the original word is Evéchç of seeet diè
                    ^
myfile.xml:33: parser error :      Entity 'nbsp' not defined
            <name>SCIEF&nbsp; Toto</name>

在我的 rng 文件中

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

字节序列 0xEA 0x63 0x68 0xE9 在 ISO-8859-1(和其他字符集)中是“êché”,所以看起来引用的源代码部分的第一个词实际上是“ Evêché”? (不是“Evéchç”……)

在 UTF-8 中,êché 的字节将是 0xC3 0xAA 0x63 0x68 0xC3 0xA9

所以看起来源代码实际上并不是用 UTF-8 编码的,而是用 ISO-8859-1 或其他什么编码的?

如果是这样,必须将 XML 声明更改为 <?xml version="1.0" encoding="ISO-8859-1"?> 或源需要转换为 UTF-8(例如,使用 iconv)。

至于关于 &nbsp; 的错误,那是因为它是一个 HTML 字符引用,并且没有为任意 XML 文档定义。只需将其替换为 &#160;&#xA0;,该错误就会消失。