c# - 使用 XDocument 加载编码为 UTF 16 的 xml

标签 c# xml winforms visual-studio-2008 unicode

我正在尝试使用 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/

相关文章:

C# WinForms,这是什么奇怪的错误?

c# - 在 Windows 应用程序中显示结果

c# - VB.NET,创建一个返回类型为泛型的函数?

xml - 使用模板匹配测试节点是否为空或包含 NULL

python - 如何从 suds 响应中获取未解析的 XML,以及用于存储的最佳 Django 模型字段

c# - 将数据发送到 Windows 窗体应用程序

c# - 使用 C# 调用返回结构数组的非托管 dll 函数

c# - Azure 服务总线触发功能 - 绑定(bind)到 MessageReceiver

c# - 接口(interface)泛型类的返回结果

c# - 在 winform 中使用 COM 组件时出错