使用ASCII编码保存xml文件 我有一个程序,使用OpenCV来读取C++程序中的XML文件。我想使用C#程序更改xml文件。当我使用XDocument类的Save函数时,我得到以下错误:“流中的字符无效”
当我检查流时,我包含以下字符串:使用ASCII编码保存xml文件 我有一个程序,使用OpenCV来读取C++程序中的XML文件。我想使用C#程序更改xml文件。当我使用XDocument类的Save函数时,我得到以下错误:“流中的字符无效”,c#,xml,encoding,linq-to-xml,ascii,C#,Xml,Encoding,Linq To Xml,Ascii,当我检查流时,我包含以下字符串: <?xml version="1.0" encoding="utf-8"?> ï» 我认为起始字符是因为utf-8,所以我用ASCII格式保存xml。我的xml文件的编码更改为ascii,但xml文件中写入了Encoding=“us ascii”。我的问题是OpenCv检查编码是否为ASCII,因为它是用usascii编写的,所以会抛出异常。有没有办法在XDocument保存的xml中为编码属性写入ASCII?您可以通过创建一个新的enco
<?xml version="1.0" encoding="utf-8"?>
ï»
我认为起始字符是因为
utf-8
,所以我用ASCII
格式保存xml。我的xml文件的编码更改为ascii,但xml文件中写入了Encoding=“us ascii”
。我的问题是OpenCv检查编码是否为ASCII
,因为它是用usascii
编写的,所以会抛出异常。有没有办法在XDocument保存的xml中为编码属性写入ASCII
?您可以通过创建一个新的encoding
类并覆盖WebName
来实现这一点,如下所示:
public class NonUsAsciiEncoding : ASCIIEncoding
{
public override string WebName
{
get
{
return "ascii";
}
}
}
private void CreateXml()
{
XmlTextWriter xmlwriter = new XmlTextWriter("c:\\test.xml", new NonUsAsciiEncoding());
XDocument xdoc = new XDocument(
new XElement("Test")
);
xdoc.Save(xmlwriter);
xmlwriter.Close();
}