在C#中编码XML

Cod*_*elp 2 c# encoding

我有一个xml文件,里面有变音符号,如下所示:

<NameGe>ËÇ</NameGe>
Run Code Online (Sandbox Code Playgroud)

有没有办法读取此文件并将其写出来:

<NameGe>&#214;&#231;</NameGe>
Run Code Online (Sandbox Code Playgroud)

所以基本上应该写出变音符号的数值/编码值.

问候.

L.B*_*L.B 5

你可以通过覆盖WriteString来实现XmlTextWriter

MemoryStream m = new MemoryStream();
MyWriter xmlWriter = new MyWriter(m);

XDocument xDoc = XDocument.Parse(xml);
xDoc.Save(xmlWriter);
xmlWriter.Flush();

string s = Encoding.UTF8.GetString(m.ToArray());
Run Code Online (Sandbox Code Playgroud)

-

public class MyWriter : XmlTextWriter
{
    public MyWriter(Stream s) : base(s,Encoding.UTF8)
    {
    }
    public override void WriteString(string text)
    {
        base.WriteRaw(HttpUtility.HtmlEncode(text));
    }
}
Run Code Online (Sandbox Code Playgroud)