UTF-8としてエンコードされたXMLファイルがあります。
<?xml version="1.0" encoding="UTF-8"?>
Unicodeが埋め込まれているノードが1つあります。これは、フランス語(およびその他の)文字を保持するためです。
<author>Fr\u00e9d\u00e9ric</author>
このフォーマットされたテキストをテキストボックスにロードして、期待どおりにテキストを表示したい、つまりFrédéric
私はファイルをロードするために以下を使用しています、そして他のすべては変換だけでなく、期待通りに動作します。
System.Xml.XmlReader Reader;
Reader = System.Xml.XmlReader.Create(new StreamReader(Filename, Encoding.GetEncoding("UTF-8")));
XMLFile = XDocument.Load(Reader);
実際にノード情報を抽出するために使用する行は次のとおりです。
var classes = XMLFile.Root.Elements("class").Select(x => x);
これは素晴らしいことであり、必要な情報を正確に抽出することができます。
期待どおりに機能しないのは、このフランス語(UTF-8)テキストのフォーマットのみです。私はいくつかの調査を行い、支援するために他の2つの機能を取得しました。
private string Decode(string Encoded)
{
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
Byte[] Message = UTF8.GetBytes(Encoded);
return UTF8.GetString(Message);
}
private string Encode(string Original)
{
System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding();
Byte[] Message = ASCII.GetBytes(Original);
return ASCII.GetString(Message);
}
これらのどちらも違いはないようです。テキストボックスに表示されるのは。だけですFr\\u00e9d\\u00e9ric
。
私は何が欠けていますか?助けてください。