放松NG解析器错误

时间:2016-11-07 14:30:25

标签: xml parsing relaxng

我想要.xml.rng进行验证,但我一直收到此错误

 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"?>

1 个答案:

答案 0 :(得分:0)

字节序列0xEA 0x63 0x68 0xE9是&#34; êché&#34;在ISO-8859-1(和其他字符集)中,所以看来引用的部分中的第一个字实际上是&#34; Evêché&#34;? (不是&#34; Evéchç&#34; ...)

在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;,该错误就会消失。