Как изменить кодировку текста по умолчанию в LibreOffice?

Я хочу изменить кодировку текста по умолчанию, используемую LibreOffice при сохранении документа как текстового документа. Где я могу найти этот параметр?

Я хочу, чтобы это был UTF-8 БЕЗ спецификации, которая, как мне кажется, называется ASCII/US в LibreOffice.

Я знаю, что есть опция "Кодированный текст", где вы можете (теоретически, если это действительно работает) выбрать кодировку каждого простого файла. У меня есть три проблемы с этим:

  • Это не работает должным образом. Т.е. большую часть времени он не показывает всплывающее окно, в котором вы можете выбрать кодировку, а просто сохраняет, как если бы вы выбрали опцию Text. Возможно один раз в десяти испытаниях это показывает всплывающее окно.
  • Я редактирую только текстовые файлы и использую LibreOffice только для проверки орфографии (и подсчета слов). Все файлы, которые я когда-либо захочу записать, должны быть в кодировке UTF-8 без спецификации, поэтому я бы хотел избежать потери времени каждый раз, вручную выбирая эту опцию.
  • Если у меня есть файл, правильно закодированный в UTF-8 без BOM, и я затем пытаюсь сохранить его, например, с помощью Ctrl + S, тогда файл будет автоматически сохранен с использованием кодировки Text по умолчанию, которая сохраняет файл как UTF-8. с спецификацией, которая разбивает файл. LibreOffice должен сохранить кодировку файла и сохранить файл как UTF-8 без спецификации. Необходимость использовать Save As каждый раз - это пустая трата времени.

1 ответ

Чтобы открыть диалоговое окно параметров кодирования, перейдите в " Сохранить как..." и проверьте 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

Установите его на горячую клавишу или кнопку панели инструментов, перейдя в Tools -> Customize,

Его можно изменить, чтобы использовать глобальную переменную и сохранить в ранее используемом местоположении.

UTF-8 без спецификации, которая, как я считаю, называется ASCII/US

Нет, это создает ASCII-кодированный текст, который уничтожает большинство символов Юникода.

Я не вижу каких-либо опций фильтра, которые можно сохранить без спецификации из LibreOffice. Вместо этого есть различные инструменты командной строки, такие как iconv, которые могут удалить спецификацию.

Если у вас есть время, лучшим решением может быть создание макроса Python или Java для чтения документа Writer и записи в файл без спецификации. Это может быть сделано, возможно, в 30 строках кода Python или в два раза больше кода Java. Примечание: я бы не рекомендовал делать это в Basic из-за плохих функций обработки файлов.

Другие вопросы по тегам