0

我正在使用一个简单的 XML 文件,在使用 Liquid XML Studio 对其进行编辑后,它似乎在文件的开头添加了一些随机字符()。这是怎么回事?

4

1 回答 1

2

字节顺序标记 (BOM) 和文档编码

有关字节顺序标记 (BOM) 的更多信息,请参阅字节顺序标记

当 Liquid XML Studio 加载文档时,它使用 BOM(如果存在)来确定编码,并使用它来将文档解码为内部 Unicode 格式。XML 中的 encoding 属性(如果存在)用于将数据解码细化为其 Unicode 形式。

如果 BOM 和编码属性冲突,则进行最佳猜测(通常依赖于 BOM)。

XML 文档在内部作为 Unicode 进行存储和操作,并将编码属性(或 BOM)提供的编码作为文档的属性。

每当您将数据粘贴到文档中时,它都会被处理为 Unicode。

当您保存文档时,将使用与文档关联的编码属性写出文档(用户可以在属性窗口中更改此属性)。所以你应该没有编码问题。

将 BOM 与 UTF-8 编码文档一起使用时的问题

Unicode 文件必须有一个 BOM 来识别它们。BOM 成为问题的唯一时间是 UTF-8。对于 UTF-8,没有标准说明是否应该编写 BOM。大多数 Microsoft 应用程序和较新的应用程序编写 BOM,一些较旧的应用程序不编写 BOM,更糟糕的是,当读取包含 BOM 的文档时仍然不理解它。他们可能只会在文档的开头看到字符 EF BB BF 或  并假设该文档无效。

为了适应这一点,我们默认编写 BOM,但是对于 UTF-8,有一个全局选项可以将其关闭。

在 Liquid XML Studio 中,您可以通过更改以下设置来停止编写 BOM:

Tools->Options->Environment->Write Byte Order Marker (BOM)

于 2016-12-23T13:43:33.517 回答