如何更改 LibreOffice 默认文本编码?

如何更改 LibreOffice 默认文本编码?

我想改变默认将文档保存为文本文档时 LibreOffice 使用的文本编码。我在哪里可以找到此设置?

我希望它是 UTF-8没有BOM,我相信在 LibreOffice 中它被称为 ASCII/US。

知道有一个文本编码选项,您可以在其中(理论上,如果它确实有效)选择每个纯文本文件的编码。我对此有三个问题:

  • 它不能正常工作。即大多数时候它不会显示任何弹出窗口,您可以在其中选择编码,而只是像选择文本选项一样保存。也许十次尝试中会有一次显示弹出窗口。
  • 仅有的编辑纯文本文件,我仅使用 LibreOffice 进行拼写检查(和计数单词)。我想要编写的所有文件都应该是 UTF-8 编码没有BOM,所以我想避免每次都通过手动选择此选项来浪费时间。
  • 如果我有一个以 UTF-8 正确编码的文件没有BOM,然后我尝试使用例如Ctrl+来保存它,S然后文件将自动使用文本默认编码保存,将文件保存为 UTF-8BOM 会破坏文件。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 中执行此操作,因为它的文件处理功能很差。

相关内容