C#学习教程:尽管以UTF-8编写XML,但在XmlElement中转义Unicode字符串Unicode字符串的版本,即使文档最终以UTF-8编码。有没有办法做到这一点?这是代码的一个简单版本:conststringtext="?";vardocument=newXmlDocument{PreserveWhitespace=true};varroot=document.CreateElement("root");root.InnerXml=文本;文档.AppendChild(根);varsettings=newXmlWriterSettings{编码=编码。UTF8,OmitXmlDeclaration=true};使用(varstream=newFileStream("out.xml",FileMode.Create))使用(varwriter=XmlWriter.Create(stream,settings))document.WriteTo(writer);预期:?实际:?直接使用XmlWriter并调用WriteRaw(text)工作正常,但我只能访问XmlDocument,它稍后会被序列化。在XmlElement中,InnerText按预期将&转义为&,设置Value会引发异常。有没有办法将XmlElement的内部文本设置为转义的ASCII文本,而不管使用的最终编码如何?我觉得我必须遗漏一些明显的东西,否则这是不可能的。如果您要求XmlWriter生成ASCII输出,它应该为您提供所有非ASCII内容的字符引用。varsettings=newXmlWriterSettings{Encoding=Encoding.ASCII,OmitXmlDeclaration=true};输出仍然是有效的UTF-8,因为ASCII是UTF-8的子集。以上就是C#学习教程:虽然是用UTF-8写XML,但是还是在XmlElement中对Unicode字符串进行转义的所有内容分享,如果对大家有用还需要详细了解C#学习教程,希望大家多多关注—本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
