我正在尝试使用 XDocument 方法读取 xml 文档。 但是当 xml 有
<?xml version="1.0" encoding="utf-16"?>
当我手动删除编码时。它工作得很好。
我收到错误“没有 Unicode 字节顺序标记。无法切换到 Unicode。”
我尝试搜索并找到了这里-->
Why does C# XmlDocument.LoadXml(string) fail when an XML header is included?
但无法解决我的问题。
我的代码:
XDocument xdoc = XDocument.Load(path);
有什么建议吗??
谢谢。
最佳答案
您尝试读取的文件似乎未编码为 Unicode。您可以通过尝试打开编码为 ANSI 且 XML 文件中的编码指定为 utf-16
的文件来复制该行为。
如果您不能确保文件被正确编码,那么您可以将文件读入流中(让 StreamReader
检测编码),然后创建 XDocument
:
using (StreamReader sr = new StreamReader(path, true))
{
XDocument xdoc = XDocument.Load(sr);
}
关于c# - 使用 XDocument 加载编码为 UTF 16 的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4568811/