Что нового

Как конвертировать файл windows 1251 в utf-8

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Добрый день!
есть текстовые файлы (таблицы в Ексель в формате csv), помогите, чем можно сконвертировать их из windows-1251 в utf-8.
таблиц довольно много, конвертировать руками - неудобно и утомляет
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код:
FileWrite("utf.txt", FileRead("ansi.txt"))

Или используйте нужные режимы функции
Код:
FileOpen()
 

Alecsis

Осваивающий
Сообщения
101
Репутация
41
Что-то в этом роде с минимальной «дуракозащитой» :acute:
Код:
#pragma compile(Console, True)          ; консольное приложение, можно использовать в .bat
Opt('MustDeclareVars', True)
#include <FileConstants.au3>
Local Const $cnErrOpen = -1             ; признак облома FileOpen
Local $sFileAnsi, $sFileUTF, _          ; имена входного и вых. файлов
      $hRead, $hWrite,  _               ; хендлы их же
      $sText                            ; данные

If $CmdLine[0] < 2 Then                 ; «защита от дурака» #1
  i_Error('Missing parameter(s)!')
  Exit 362
EndIf

; параметры запуска скрипта: <файл-источник> <файл-результат>
;
$sFileAnsi = $CmdLine[1]
$sFileUTF  = $CmdLine[2]
;
$hRead  = FileOpen($sFileAnsi, $FO_ANSI)
If $hRead = $cnErrOpen Then             ; «защита от дурака» #2
  i_Error('Cannot open source file ' & $sFileAnsi)
  Exit 432
EndIf
;
$hWrite = FileOpen($sFileUTF, $FO_UTF8 + $FO_OVERWRITE) ; или вместо $FO_UTF8 мб $FO_UTF8_NOBOM  если не нужен маркер кодировки
If $hWrite = $cnErrOpen Then            ; «защита от дурака» #3
  i_Error('Cannot open target file ' & $sFileUTF)
  Exit 470
EndIf
;
$sText = FileRead($hRead)
FileWrite($hWrite, $sText)
FileClose($hWrite)
FileClose($hRead)
ConsoleWrite('Ok!' & @CRLF)
Exit 0
;
Func i_Error($sMsg) ; вывод сообщений об ошибке в одном стиле
  ConsoleWrite('*** Error *** ' & $sMsg & @CRLF)
EndFunc
Контрольный пример: источник = qwerty.txt, результат = asdfg.txt
 

Вложения

  • asdfg.txt
    75 байт · Просмотры: 1
  • qwerty.txt
    39 байт · Просмотры: 1
Верх