RELAX NG解析错误
问题描述:
我特林验证我.xml
对.rng
,但我一直在我的RNG文件收到此错误RELAX NG解析错误
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 Toto</name>
<?xml version="1.0" encoding="UTF-8"?>
答
的字节序列0xEA 0x63 0x68 0xE9
是 “êché
” 在ISO -8859-1(和其他的字符集),所以它似乎引用的部分来源的第一个字实际上是“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
)。
至于关于
的错误,那是因为它是HTML字符引用,并没有为任意XML文档定义。只需将其替换为 
或 
,该错误将消失。