我的角色一直无效!看起来像我正在处理的xml中的£符号。我得到“给定编码中的无效字符”。这是一个代码& xml片段。
<outputs>
<output id='1'>
<key><![CDATA[123]]></key>
<message id='84'>
<source><![CDATA[123]]></source>
<sender><![CDATA[Paul]]></sender>
<text><![CDATA[Testing Currency £7.50 $9.999 _]]></text>
</message>
</output>
</outputs>
我做的代码并不多。
XDocument doc = XDocument.Load(xmlFileName);
我不改变编码或任何东西。有小费吗 ?。
答案 0 :(得分:1)
如果加载XML文档,则可能会出现此编码问题:
在文字内容中找到了无效字符。
如果您的XML包含非ASCII字符,并且文件保存为单字节ANSI(或ASCII)且未指定编码,则会出现此错误。
Windows记事本默认将文件保存为单字节ANSI(ASCII)。
要解决您的问题,您可以使用 NotePad 打开xml,然后如果选择“另存为...”,则可以指定单字节Unicode(UTF-8),然后尝试重新加载XML。
答案 1 :(得分:1)
£符号的ASCII值为163(0xA3),UTF-8的代码为0xC2 0xA3(source)。
确保文件编码(似乎是ASCII)与使用带有编码参数的StreamReader加载XML文件的编码相匹配。
答案 2 :(得分:0)
不确定,为什么会出现此错误。
我已将您的XML复制到POC.XML文件中,并修改了此文件的构建属性以便始终复制。之后,下面的代码毫无例外地工作。
XDocument xodc = XDocument.Load("poc.xml");
答案 3 :(得分:0)
将xml标头添加到您的文件中以指定编码方法&lt; ?xml version =&#34; 1.0&#34;编码=&#34; UTF-8&#34;&GT;