我想改变默认将文档保存为文本文档时 LibreOffice 使用的文本编码。我在哪里可以找到此设置?
我希望它是 UTF-8没有BOM,我相信在 LibreOffice 中它被称为 ASCII/US。
我做知道有一个文本编码选项,您可以在其中(理论上,如果它确实有效)选择每个纯文本文件的编码。我对此有三个问题:
- 它不能正常工作。即大多数时候它不会显示任何弹出窗口,您可以在其中选择编码,而只是像选择文本选项一样保存。也许十次尝试中会有一次显示弹出窗口。
- 我仅有的编辑纯文本文件,我仅使用 LibreOffice 进行拼写检查(和计数单词)。我想要编写的所有文件都应该是 UTF-8 编码没有BOM,所以我想避免每次都通过手动选择此选项来浪费时间。
- 如果我有一个以 UTF-8 正确编码的文件没有BOM,然后我尝试使用例如Ctrl+来保存它,S然后文件将自动使用文本默认编码保存,将文件保存为 UTF-8和BOM 会破坏文件。LibreOffice 应保留文件的编码并将文件保存为 UTF-8没有BOM。必须使用另存为每次都是浪费时间。
答案1
要显示编码选项对话框,请转到另存为...并检查Edit filter settings
。
为了避免另存为...,你可以使用这样的宏:
Sub SaveAsUtf8
dim aUrl()
dim fileProps(1) as new com.sun.star.beans.PropertyValue
fileProps(0).Name = "FilterName"
fileProps(0).Name = "Text (encoded)"
fileProps(1).Name = "FilterOptions"
fileProps(1).Value ="UTF8,CRLF,Liberation Mono,en-US,"
oDlg = createUnoService("com.sun.star.ui.dialogs.FilePicker")
oDlg.setMultiSelectionMode(false)
oDlg.initialize(array(1))
oDlg.execute
aUrl = oDlg.getFiles()
If UBound(aUrl) > -1 Then
thisComponent.storeAsURL(aURL(0), fileProps())
End If
End Sub
通过将其设置为热键或工具栏按钮Tools -> Customize
。
可以修改它以使用全局变量并保存到以前使用的位置。
不带 BOM 的 UTF-8,我认为这叫做 ASCII/US
不,这会生成 ASCII 编码的文本,从而破坏大多数 Unicode 字符。
我没有看到 LibreOffice 中任何可以不带 BOM 进行保存的筛选选项。相反,有各种命令行工具,例如图标可以删除BOM。
如果您有时间,最好的解决方案可能是创建一个 Python 或 Java 宏来读取 Writer 文档并写入不带 BOM 的文件。这可能需要 30 行 Python 代码,或者两倍的 Java 代码即可完成。注意:我不建议在 Basic 中执行此操作,因为它的文件处理功能很差。