我收到一个编码为“ISO-8859-1”(Latin-1)的 XML 文件
在文件中(在其他标签中)我有<OtherText>Example "content" And ─</OtherText>
现在由于某种原因,当我将它加载到 XMLTextReader 并执行“XmlReader.Value”以返回值时,它返回:“content”并且 ─
那么,当面对一个只接受 Latin-1 编码的数据库时,显然是错误的。
我尝试了以下方法:
- 转换为字节并使用 Encoding.Convert 从 UTF-8 更改为 Latin-1(这成功地给了我一堆“?”代替)
- 使用 StreamReader(file,Encoding.whatever )将文件加载到 XmlTextReader
以及互联网和 StackOverflow istelf 上的几种变体和不同的方法。
我知道 .NET 字符串是 UTF-16,但我不明白为什么,当存在与旧数据库和网络兼容的 UTF-8 字符时,一个带有正确标记的完全拉丁 1 格式的 XML 文件(对于HTML 标记等),它只是简单地覆盖它并输出 UTF-8 编码的字符串无论如何。
除了编写我自己的自定义文本解析器之外,有没有办法解决这个问题???