使用XDocument加载编码为UTF 16的xml
我正在尝试使用XDocument方法读取xml文档。 但是我得到一个错误,当XML有
<?xml version="1.0" encoding="utf-16"?> 当我手动删除编码。它完美的作品。
我收到错误“ 没有Unicode字节顺序标记,不能切换到Unicode”。
我试图寻找,我在这里登陆 – >
为什么包含XML头时C#XmlDocument.LoadXml(string)失败?
但解决不了我的问题。
我的代码:
 XDocument xdoc = XDocument.Load(path); 
有什么build议么 ??
谢谢。
 它看起来像你试图读取的文件不是编码为Unicode。 您可以通过尝试打开一个编码为ANSI的文件来复制该行为,并将该文件指定为utf-16的XML文件中的编码。 
 如果您不能确保文件编码正确,那么您可以将文件读StreamReader (让StreamReader检测编码),然后创buildXDocument : 
 using (StreamReader sr = new StreamReader(path, true)) { XDocument xdoc = XDocument.Load(sr); } 
我试过了,find了另一种方法!
 XDocument xdoc = XDocument.Parse(System.IO.File.ReadAllLines(path)); 
此代码:
 System.IO.File.ReadAllLines(path) 
返回一个string数组。 正确的代码是:
 System.IO.File.ReadAllText(path)