次のようなウムラウトを含むxmlファイルがあります。
<NameGe>ËÇ</NameGe>
このファイルを読み取り、次のように書き出す方法はありますか。
<NameGe>Öç</NameGe>
したがって、基本的には、ウムラウトの数値/エンコードされた値を書き込む必要があります。
よろしく。
をオーバーライドすることでそれを行うことができ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());
-
public class MyWriter : XmlTextWriter
{
public MyWriter(Stream s) : base(s,Encoding.UTF8)
{
}
public override void WriteString(string text)
{
base.WriteRaw(HttpUtility.HtmlEncode(text));
}
}
とを使用HttpUtility.HtmlEncode
しHttpUtility.HtmlDecode
ます。