C# XML无效字符!。

C# XML无效字符!。,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,我得到了一个无效字符!我正在处理的xml中的符号。我得到了“给定编码中的无效字符” <outputs> <output id='1'> <key><![CDATA[123]]></key> <message id='84'> <source><![CDATA[123]]></source> <sender><![CDATA[Paul]]></sender>

我得到了一个无效字符!我正在处理的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>

我不会改变编码或任何东西。有什么建议吗

如果加载XML文档,可能会遇到以下编码问题:

在文本内容中发现无效字符。

如果XML包含非ASCII字符,并且文件保存为单字节ANSI(或ASCII)且未指定编码,则会出现此错误

Windows记事本默认情况下将文件保存为单字节ANSI(ASCII)

要解决问题,可以使用记事本打开xml,然后如果选择“另存为…”,可以指定单字节Unicode(UTF-8),然后尝试重新加载xml


符号具有ASCII值163(0xA3)和UTF-8代码0xC2 0xA3()


确保文件编码(似乎是ASCII)与使用with encoding参数加载XML文件时使用的编码匹配。

不确定,为什么会出现此错误

我已将您的XML复制到POC.XML文件中,并将此文件的生成属性修改为始终复制。此后,下面的代码毫无例外地工作

XDocument xodc = XDocument.Load("poc.xml");

将xml头添加到文件中以指定编码方法<?xml version=“1.0”encoding=“UTF-8”>

xml的编码是什么?它与UTF-8不同吗?如果是,您在开始时是否有一个XML声明来指定编码?上次我这样做是因为XML声明声称它是UTF-8,但文件已保存为ANSI-因此特殊字符编码不正确。您可以通过在记事本中打开来快速测试这一点,然后在“另存为”对话框中,您可以在“编码”下拉列表中将编码更改为UTF-8。现在文件编码为UTF-8,请尝试在代码中重新打开它。我认为处理指令就是术语
XDocument xodc = XDocument.Load("poc.xml");