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

发布于 2024-08-21 01:32:18 字数 308 浏览 6 评论 0原文

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

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

我目前有一个办法,即使用 .ToString() 获取文本,然后使用 StreamWriter 将其写入文件。

理想情况下,我想在 .Save() 期间设置格式,但找不到任何相关信息。

谢谢。

In C#, I need to create XML files for use with Ivy and NAnt, but am having difficulty in getting the right encoding in the output file.

If I use XElement's .Save("C:\foo.xml"), I get the correct looking file, but Ivy and/or NAnt gets upset, as the file is actually saved using UTF-8 but I actually need to save it as ANSI in order to be able to use it.

I have a bodge in place at present, which is to use .ToString() to get the text and then use a StreamWriter to write it to a file.

Ideally, I'd like to set the format during the .Save() but can't find any information on this.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

债姬 2024-08-28 01:32:18

XDocument.Save 有许多过载。

通过正确构造的 XmlWriter 进行写入允许我们选择 ASCII 编码。

var doc = XDocument.Parse( "<foo> barṸbaz</foo>" );

XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = new ASCIIEncoding();
using (var writer = XmlWriter.Create( "xelement.xml", settings )) {
    doc.Save( writer );
}

XDocument.Save has a number of overloads.

Writing via a properly constructed XmlWriter allows us to choose the ASCII encoding.

var doc = XDocument.Parse( "<foo> barṸbaz</foo>" );

XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = new ASCIIEncoding();
using (var writer = XmlWriter.Create( "xelement.xml", settings )) {
    doc.Save( writer );
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文