我正在从 .net 服务向 java 类发送一个字符串,但在 java 中,我得到 org.xml.sax.SAXParseException: Character reference "�" is an invalid XML character。
请帮我解决这个问题。提前致谢。
在 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
字符串中的原因是什么。
部分无效字符在解析 XML 时会引发 Exception,官方定义了这三种无效字符范围:
0x00 - 0x08
0x0b - 0x0c
0x0e - 0x1f
因此,您可以在解析 XML 内容之前过滤它们。