相关疑难解决方法(0)

XDocument:将XML保存到没有BOM的文件

我正在使用生成utf-8 XML文件XDocument.

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);
Run Code Online (Sandbox Code Playgroud)

正确生成文件并使用xsd文件成功验证.

当我尝试将XML文件上传到在线服务时,该服务说我的文件是wrong at line 1; 我发现问题是由文件的第一个字节上的BOM引起的.

你知道为什么将BOM附加到文件中,如何在没有它的情况下保存文件?

如字节顺序标记维基百科文章中所述:

虽然Unicode标准允许使用UTF-8的BOM, 但它不需要或推荐它.字节顺序在UTF-8中没有意义,因此BOM仅用于将文本流或文件标识为UTF-8或者是从具有BOM的另一种格式转换的

这是一个XDocument问题还是我应该联系在线服务提供商的人员要求解析器升级?

c# byte-order-mark linq-to-xml

38
推荐指数
2
解决办法
3万
查看次数

标签 统计

byte-order-mark ×1

c# ×1

linq-to-xml ×1