我有xml文件,代表从邮件客户端导出的电子邮件。不幸的是,当我尝试读取这些文件时,显示原始字符时不显示特殊字符。
我试图在我用.Net写的客户端中正确读取它。
示例:我得到以下数字替换:
á
这被解释为:
á
原始/预期值为:
ú
一个更好的例子:
Tað eftir er av árinum ber tó til at logga á
这被解释为:
Tað eftir er av árinum ber tó til at logga á
原始/预期值为:
Tað eftir er av árinum ber tó til at logga á
我可以观察到问题似乎是,.Net将ð解释为两个单独的字符,而实际上代表一个字符。
我相信我应该可以使用这个网站将解释后的值翻译成预期值(虽然不是我得到的确切字符):http://www.i18nqa.com/debug/utf8-debug.html
但是我无法在.Net中正确显示它。
x.Load(
New StreamReader(
File.Open("content.xml", FileMode.Open),
Encoding.GetEncoding(1252), True
)
)
这没有什么区别。如果我尝试Encoding.Unicode然后它无法读取文件(错误:根级别的数据无效)
答案 0 :(得分:0)
在另一篇文章中找到我的答案:https://stackoverflow.com/a/5130065/1113421
首先以UTF-8加载文档,然后在我需要的XML节点上,我即时转换它们:
VB代码
@import "bootstrap-sprockets";
@import "bootstrap";
@import "font-awesome";
@import "social-share-kit";
@import "trix";
@import "easy-autocomplete.min";
@import "easy-autocomplete.themes.min";
@import "dashboard";
这给了我对 nd.InnerText 中外来字符的正确解释。
感谢@JonSkeet的详细说明和指向正确方向的链接,以便进一步挖掘。