Когда я использую LibreOffice Calc и сохраняю файл как .csv, LibreOffice предлагает Западную Европу как кодировку по умолчанию. Однако я хочу кодировку unicode-8.
Как установить Unicode-8 в качестве кодировки по умолчанию в LibreOffice под Windows 10?
решение1
Глядя на мою копию LibreOffice v5.0.x, я не вижу, чтобы у нее была настройка по умолчанию. Однако, осмотревшись, я нашел пример макроса, который можно использовать здесь для сохранения в UTF8,
https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=19695
и другой макрос, который скажет вам использовать диалоговое окно выбора файлов из
https://forum.openoffice.org/en/forum/viewtopic.php?f=25&t=36441
Вот полный код...
Function fOpenFile() as String
Dim oFileDialog as Object
Dim iAccept as Integer
Dim sPath as String
Dim InitPath as String
Dim oUcb as object
Dim filterNames(3) as String
filterNames(0) = "*.csv"
'filterNames(1) = "*.png"
'filterNames(2) = "*.jpg"
GlobalScope.BasicLibraries.LoadLibrary("Tools")
'Note: The following services must be called in the following order,
' otherwise the FileDialog Service is not removed.
oFileDialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
oUcb = createUnoService("com.sun.star.ucb.SimpleFileAccess")
AddFiltersToDialog(FilterNames(), oFileDialog)
'Set your initial path here!
InitPath = ConvertToUrl("C:\")
If oUcb.Exists(InitPath) Then
oFileDialog.SetDisplayDirectory(InitPath)
End If
iAccept = oFileDialog.Execute()
If iAccept = 1 Then
sPath = oFileDialog.Files(0)
fOpenFile = sPath
End If
oFileDialog.Dispose()
End Function
Sub SaveAsCsvUTF8
Dim Propval(1) as New com.sun.star.beans.PropertyValue
Propval(0).Name = "FilterName"
Propval(0).Value = "Text - txt - csv (StarCalc)"
Propval(1).Name = "FilterOptions"
' field sep(44 - comma), txt delim (34 - dblquo), charset (0 = system, 76 - utf8), first line (1 or 2)
Propval(1).Value = "44,34,76,1"
Doc = ThisComponent
Filename = fOpenFile()
FileURL = convertToURL(FileName)
Doc.StoreAsURL(FileURL, Propval())
End Sub
Назначьте его на ярлык, и все готово.
PS: Если файл уже в кодировке UTF8, он должен это просто учитывать.
НТН