【问题标题】:Saving xml file with ASCII encoding使用 ASCII 编码保存 xml 文件
【发布时间】:2014-03-15 11:20:05
【问题描述】:

我有一个程序使用 OpenCV 读取 C++ 程序中的 xml 文件。我想使用 C# 程序更改我的 xml 文件。当我使用XDocument 类的Save 函数时,出现以下错误:“流中的字符无效”

当我检查流时,我包含以下字符串:

<?xml version="1.0" encoding="utf-8"?>

我以为开头字符是因为utf-8,所以我用this method将我的xml保存为ASCII格式。我的 xml 文件的编码更改为 ascii,但 xml 文件中写入了 encoding="us-ascii"。我的问题是 OpenCv 检查编码是否为ASCII,并且由于它是us-ascii,它会引发异常。 XDocument保存的xml中编码属性写ASCII有什么办法吗?

【问题讨论】:

    标签: c# xml encoding linq-to-xml ascii


    【解决方案1】:

    您可以通过创建一个新的 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();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-03
      • 2015-11-03
      • 2012-02-17
      相关资源
      最近更新 更多