2

我正在从 .net 服务向 java 类发送一个字符串,但在 java 中,我得到 org.xml.sax.SAXParseException: Character reference "�" is an invalid XML character。

请帮我解决这个问题。提前致谢。

4

2 回答 2

1

在 C 或 C++ 中,字符串由null(或 '\0') 终止。在 C# 中,字符串可以包含null,但通常这些来自 C/C++ 函数。

您可以摆脱null.net 字符串中的

s = s.Replace("\0", "");  // just removes the null

或者

int pos = s.IndexOf('\0');  
if (pos >= 0)
    s = s.Substring(0, pos); // removes the null and the rest of the string

取决于null字符串中的原因是什么。

于 2013-07-29T15:10:01.957 回答
0

部分无效字符在解析 XML 时会引发 Exception,官方定义了这三种无效字符范围:

0x00 - 0x08  
0x0b - 0x0c  
0x0e - 0x1f

因此,您可以在解析 XML 内容之前过滤它们。

于 2017-06-23T06:25:18.320 回答