2

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

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

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

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

1 ответ1

3

Чтобы открыть диалоговое окно параметров кодирования, перейдите в « Сохранить как ...» и установите флажок « 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 из-за плохих функций обработки файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .