C++ 如何在xerces c中解析带有无效字符chode的xml文件?

C++ 如何在xerces c中解析带有无效字符chode的xml文件?,c++,xml,xerces,C++,Xml,Xerces,我有一个下面的示例文件,可以使用C#代码进行解析, 但是当使用xerces c时,由于无效字符,它无法解析。 只有在删除后才能正确解析它② 及①. 有没有办法在xerces c中解析这个? (我不倾向于使用IBM xerces。) 哈哈,看来连堆栈溢出也能解析出来。 它显示正确。但为什么不在xerces c <head> <title/> <script><![CDATA[ var b = "②"; ]]> </scrip

我有一个下面的示例文件,可以使用C#代码进行解析, 但是当使用xerces c时,由于无效字符,它无法解析。 只有在删除后才能正确解析它② 及①. 有没有办法在xerces c中解析这个? (我不倾向于使用IBM xerces。)

哈哈,看来连堆栈溢出也能解析出来。 它显示正确。但为什么不在xerces c

<head>
<title/>
<script><![CDATA[
var b = "②";
]]>
</script>
</head>
<body style="background-color-index:7">
<p style="width:100px;height:100px;">①</p>
<p style="width:100px;height:100px;top:100px;">アイウエオ</p>
</body>

宽度:100px;高度:100px;“>①

宽度:100px;高度:100px;顶部:100px;“>アイウエオ


尝试在声明编码的文件开头添加XML声明。如果没有这样的声明,解析器必须尝试并猜测编码,这并不总是可能的。另外,您还没有告诉我们您实际使用的是什么编码,而且可能是Xerces-C实际上不支持的编码。是的,它有xml声明和编码,因此当删除无效字符时,可以正确解析它。很抱歉,我忘了提到xml有EUC-JP编码,您是正确的,xerces c不支持这种编码,但我不明白为什么是字符[アイウエオ] 无法正确分析。仅② 及① 无法解析。从对的快速扫描中可以看出,EUC-JP字符集中不支持带圆圈的数字。好的,这是一个很大的帮助。我正在寻找表示支持EUC-JP的XML4C。因此,我正在寻找不正确的解决方案。有了它,我如何在不删除的情况下解析它② 及① 在我的xml内容上?在我的DTD验证文件中,我定义了① 及② 作为HTML实体十六进制值。然后我使用该定义值替换无效字符(①②). 解析正确。但我认为这不是最好的解决方案。我无法在DTD文件中定义所有无效字符。有没有一种方法可以捕获所有无效字符而不逐个定义它们?