错误的编码 - 错误解释xml数字替换

时间:2017-10-18 09:27:37

标签: .net xml encoding

我有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然后它无法读取文件(错误:根级别的数据无效)

1 个答案:

答案 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的详细说明和指向正确方向的链接,以便进一步挖掘。