【问题标题】:Saving a Linq to Xml file as ANSI instead of UTF-8 in C# (Ivy)在 C# (Ivy) 中将 Linq to Xml 文件保存为 ANSI 而不是 UTF-8
【发布时间】:2011-01-16 05:13:35
【问题描述】:

在 C# 中,我需要创建用于 Ivy 和 NAnt 的 XML 文件,但在输出文件中获得正确的编码时遇到了困难。

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

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

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

谢谢。

【问题讨论】:

    标签: utf-8 linq-to-xml nant ansi ivy


    【解决方案1】:

    XDocument.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 );
    }
    

    【讨论】:

      猜你喜欢
      • 2016-05-09
      • 1970-01-01
      • 2020-10-24
      • 2012-01-08
      • 2015-12-07
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 2010-11-01
      相关资源
      最近更新 更多