【发布时间】:2012-09-01 19:04:33
【问题描述】:
我有一个 ACII 编码的 XML 文件。
我尝试使用两种不同的 Microsoft XmlReader 实现来阅读它:
XmlReader.Create(new StreamReader(fileImport.FileContent, true));new XmlTextReader(fileImport.FileContent)
第一个 XmlReader.Create 使用 StreamReader 进行编码,效果很好。
第二个,new XmlTextReader,抛出一个 XmlException 并带有消息“给定编码中的无效字符”。
如果您阅读了这两个的 MSDN 文档,它们都应该从字节顺序标记中检测编码,如果检测失败,则回退到 UTF-8。
XmlTextReader[msdn]
StreamReader[msdn]
那么,为什么 XmlTextReader 会失败,编码无效,而 StreamReader 却没有,当文档说默认情况下两种实现都以相同的方式处理编码时?
【问题讨论】:
标签: c# xml character-encoding