如果我使用XDocument.Load
来解析XML文件......
var x = XDocument.Load("somefile.xml");
... 没有有<?xml version="1.0" encoding="..."?>
标题......
<MyRootElement>
...
</MyRootElement>
... XDocument.Load
假设的默认编码是什么? ANSI(即系统默认的遗留语言环境)? UTF-8?还有别的吗?
我有checked the documentation,但那里没有记录。我也查看了reference source,但在深入XmlReader
来源后放弃了。
答案 0 :(得分:2)
在内部,calls XmlReader.Create(string, XmlReaderSettings)
。这使它与该方法调用具有相同的默认值。根据{{3}}的链接,可以从BOM中自动检测流输入的编码(如果没有BOM,则为Jeroen's comment。)
但是,根据default being ASCII,可以通过传入TextWriter
(例如StreamWriter
)来覆盖默认编码:
StreamReader reader = new StreamReader("somefile.xml", Encoding.GetEncoding(1252));
var x = XDocument.Load(reader);