我有一个编码为 UTF-8 的 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
有一个节点嵌入了 Unicode - 以保留法语(和其他)字符。
<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) 文本的格式没有按我的预期工作。我做了一些研究,并抓住了另外两个功能来帮助:
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
.
我错过了什么?请帮忙。