【发布时间】:2011-06-23 23:46:55
【问题描述】:
我正在使用 XDocument 生成一个 utf-8 XML 文件。
XDocument xml_document = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement(ROOT_NAME,
new XAttribute("note", note)
)
);
...
xml_document.Save(@file_path);
文件已正确生成并使用 xsd 文件验证成功。
当我尝试将 XML 文件上传到在线服务时,该服务说我的文件是 wrong at line 1;我发现问题是由文件第一个字节上的 BOM 引起的。
您知道为什么将 BOM 附加到文件中吗?没有它我如何保存文件?
如Byte order mark维基百科文章所述:
虽然 Unicode 标准允许 BOM 在 UTF-8 不需要或 推荐它。字节顺序没有 在 UTF-8 中的含义,所以只有 BOM 用于识别文本流或 文件为 UTF-8 或已转换 来自具有 BOM 的另一种格式
这是XDocument 的问题还是我应该联系在线服务提供商的人要求解析器升级?
【问题讨论】:
标签: c# linq-to-xml byte-order-mark