从 LibreOffice 导出不带字节顺序标记的 UTF-8 文本

从 LibreOffice 导出不带字节顺序标记的 UTF-8 文本

在 LibreOffice 中,如果我将文档保存为文件类型“编码文本”并选择“Unicode (UTF-8)”作为编码,它总是在文本开头写入字节顺序标记 (BOM)。即使导出的文本开头没有这样的标记(例如导入的 ISO-8859-8 文本),它也会这样做。有没有办法抑制 BOM 的生成?

根据Unicode 文档:”在 8 位环境中透明使用 UTF-8 的情况下,使用 BOM 会干扰任何需要以特定 ASCII 字符开头的协议或文件格式“。这正是我遇到的问题,因为文本将被输入到不需要初始 BOM 的程序中。

答案1

有待处理的 2018 年补丁附加到相关 2011 年错误报告

Martin van Zijl 2018-02-26 18:48:14 UTC

我创建了一个补丁以供审查。使用此补丁,如果您执行以下操作:

1) 文件 --> 另存为...
2) 选择类型 = “文本(选择编码)”
3) 单击“使用文本 - ...”
4) 在最后的对话框中将出现一个复选框“包含字节顺序标记”。如果取消选中,则输出中将不包含 BOM。

附有视频演示。

评论链接: https://gerrit.libreoffice.org/#/c/50388/

答案2

旧线程,但问题似乎仍然存在。

对我来说,Save As -> Text CSV选中Edit Filter Settings复选框然后点击Save会弹出一个对话框Export Text File,取消选中则会生成一个指示为 UTF-8 编码的Save cell content as shown文件。isutf8

答案3

使用另存为保存文件时,在所有格式下选择文本编码,然后保存。当出现确认文件格式对话框时,选择使用文本编码格式。然后出现 ASCII 过滤器选项对话框。选择西欧 (ASCII/US) 并单击确定。然后,如果您使用十六进制编辑器(如 Bless)检查生成的文件,您将看到 BOM 已消失。

相关内容