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

Bak*_*riu 7 encoding default-settings libreoffice utf-8 bom

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

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

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

  • 它不能正常工作。即大多数时候它不会显示任何弹出窗口,您可以在其中选择编码,而只是像选择了文本选项一样进行保存。也许十次试验中有一次它会显示弹出窗口。
  • 编辑纯文本文件,我只使用 LibreOffice 进行拼写检查(和计算单词)。我想写的所有文件都应该是没有BOM 的UTF-8 编码,所以我想避免每次手动选择这个选项都浪费时间。
  • 如果我有一个文件在没有BOM 的情况下以 UTF-8 正确编码,然后我尝试使用例如Ctrl+保存它,S那么文件将使用文本默认编码自动保存,该编码将文件保存为带有BOM 的UTF-8这打破了文件。LibreOffice 应保留文件的编码并将文件另存为 UTF-8,不带BOM。每次都必须使用另存为真的是浪费时间。

Jim*_*m K 4

要显示编码选项对话框,请转到另存为...并选中Edit filter settings

为了避免Save As...的缓慢,您可以使用如下宏:

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

通过转至将其设置为热键或工具栏按钮Tools -> Customize

可以将其修改为使用全局变量并保存到以前使用的位置。

没有 BOM 的 UTF-8,我认为这称为 ASCII/US

不,这会生成 ASCII 编码的文本,这会破坏大多数 Unicode 字符。

我没有看到任何可以在没有 LibreOffice BOM 的情况下保存的过滤器选项。相反,有各种命令行工具(例如iconv)可以删除 BOM。

如果您有时间,最好的解决方案可能是创建一个 Python 或 Java 宏来读取 Writer 文档并写入不带 BOM 的文件。它可以用大约 30 行 Python 代码或两倍的 Java 代码来完成。注意:我不建议在 Basic 中这样做,因为它的文件处理功能很差。