将Linq转换为Xml文件保存为ANSI而不是C#(Ivy)中的UTF-8

将Linq转换为Xml文件保存为ANSI而不是C#(Ivy)中的UTF-8,utf-8,linq-to-xml,nant,ansi,ivy,Utf 8,Linq To Xml,Nant,Ansi,Ivy,在C#中,我需要创建用于Ivy和NAnt的XML文件,但是我很难在输出文件中获得正确的编码 如果我使用XElement的.Save(“C:\foo.xml”),我会得到外观正确的文件,但Ivy和/或NAnt会感到不安,因为该文件实际上是使用UTF-8保存的,但我实际上需要将其保存为ANSI以便能够使用它 我现在有一个好办法,就是使用.ToString()获取文本,然后使用StreamWriter将其写入文件 理想情况下,我希望在.Save()过程中设置格式,但找不到有关此的任何信息 谢谢。有许多

在C#中,我需要创建用于Ivy和NAnt的XML文件,但是我很难在输出文件中获得正确的编码

如果我使用XElement的.Save(“C:\foo.xml”),我会得到外观正确的文件,但Ivy和/或NAnt会感到不安,因为该文件实际上是使用UTF-8保存的,但我实际上需要将其保存为ANSI以便能够使用它

我现在有一个好办法,就是使用.ToString()获取文本,然后使用StreamWriter将其写入文件

理想情况下,我希望在.Save()过程中设置格式,但找不到有关此的任何信息

谢谢。

有许多重载

通过正确构造的XmlWriter进行写入,我们可以选择ASCII编码

var doc = XDocument.Parse( "<foo>&#160;bar&#7800;baz</foo>" );

XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = new ASCIIEncoding();
using (var writer = XmlWriter.Create( "xelement.xml", settings )) {
    doc.Save( writer );
}
var doc=XDocument.Parse(“&160;bar&7800;baz”);
XmlWriterSettings=新的XmlWriterSettings();
settings.Encoding=new ascienceoding();
使用(var writer=XmlWriter.Create(“xelement.xml”,设置)){
保存文档(编写器);
}