Сменить кодировку текстового файла

Автор timal1234, 21 августа 2025, 13:05

0 Пользователи и 1 гость просматривают эту тему.

timal1234

Всем привет!
Как макросом записать строковый массив в текстовый файл в кодировке UTF-8 ?
Через
Print #FileNo, String
пишет в ANSI

sokol92

#1
Попробуйте так:
Option Explicit

Sub Test
  Dim arr(1)
  arr(0) = "Первая строка"
  arr(1) = "Вторая строка"
 
  StrToFile Join(arr, Chr(10)), "C:\temp\Это тест.txt"  ' или разделитель строк Chr(13) & Chr(10)
End Sub

' lang:ru
' Звписывает строку str в текстовый файл filePath (кодировка UTF-8).
' lang:en
' Writes the string str to the text file filePath.
Sub StrToFile(Byval str As String, Byval filePath As String)
  Dim oTextStream As Object, oSFA As Object
  filePath=ConvertToUrl(FilePath)
  oSFA=CreateUnoService("com.sun.star.ucb.SimpleFileAccess")
  If oSFA.exists(filePath) Then oSFA.kill filePath
  oTextStream = CreateUnoService("com.sun.star.io.TextOutputStream")
  With oTextStream
    .setOutputStream oSFA.openFileWrite(filePath)
    .writeString str
    .closeOutput
  End With 
End Sub

Владимир.

timal1234