[CMD] Перевод кодировки текстовых файлов (через консольную утилиту win_iconv)

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
7,814
Реакции
6,593
Конвертирование текстовых файлов с одной кодировки в другую с помощью win_iconv

win_iconv

Автор: Yukihiro Nakadaira
Версия: 0.0.6 (от 22.11.2012)
Это утилита с открытым исходным кодом: code.google

Синтаксис:
Код:
win_iconv [-c] [-s] [-f encoding] [-t encoding] [inputfile …]

Входная кодировка задаётся ключом -f, а выходная — ключом -t. Любая из этих кодировок по умолчанию равна локали системы. Все входные файлы читаются по очереди, если не задан параметр входного файла, то используется стандартный ввод, а конвертируемый текст выводится на стандартный вывод.

Когда задана опция -c, символы, которые не могут быть преобразованы просто выбрасываются. В противном случае при появлении подобной ошибки программа аварийно завершается.

Когда задана опция -s, сообщения об ошибках не выводятся.

Пример использования:
Код:
win_iconv -f UTF-16LE -t cp866 "UTFtext.txt" > "DOStext.txt"
Файл UTFtext.txt будет преобразован из кодировки UTF-16LE в OEM-866 и результат записан в файл DOStext.txt.

Ключ -l выводит список доступных кодировок.

CP65001
UTF8
UTF-8
CP1200
UTF16LE
UTF-16LE
UCS2LE
UCS-2LE
UCS-2-INTERNAL
CP1201
UTF16BE
UTF-16BE
UCS2BE
UCS-2BE
unicodeFFFE
CP12000
UTF32LE
UTF-32LE
UCS4LE
UCS-4LE
CP12001
UTF32BE
UTF-32BE
UCS4BE
UCS-4BE
UTF16
UTF-16
UCS2
UCS-2
UTF32
UTF-32
UCS-4
UCS4
ANSI_X3.4-1968
ANSI_X3.4-1986
ASCII
CP367
IBM367
ISO-IR-6
ISO646-US
ISO_646.IRV:1991
US
US-ASCII
CSASCII
CP819
IBM819
ISO-8859-1
ISO-IR-100
ISO8859-1
ISO_8859-1
ISO_8859-1:1987
L1
LATIN1
CSISOLATIN1
CP1250
MS-EE
WINDOWS-1250
CP1251
MS-CYRL
WINDOWS-1251
CP1252
MS-ANSI
WINDOWS-1252
CP1253
MS-GREEK
WINDOWS-1253
CP1254
MS-TURK
WINDOWS-1254
CP1255
MS-HEBR
WINDOWS-1255
CP1256
MS-ARAB
WINDOWS-1256
CP1257
WINBALTRIM
WINDOWS-1257
CP1258
WINDOWS-1258
850
CP850
IBM850
CSPC850MULTILINGUAL
862
CP862
IBM862
CSPC862LATINHEBREW
866
CP866
IBM866
CSIBM866
CP154
CYRILLIC-ASIAN
PT154
PTCP154
CSPTCP154
CP1133
IBM-CP1133
CP874
WINDOWS-874
CP51932
MS51932
WINDOWS-51932
EUC-JP
CP932
MS932
SHIFFT_JIS
SHIFFT_JIS-MS
SJIS
SJIS-MS
SJIS-OPEN
SJIS-WIN
WINDOWS-31J
WINDOWS-932
CSWINDOWS31J
CP50221
ISO-2022-JP
ISO-2022-JP-MS
ISO2022-JP
ISO2022-JP-MS
MS50221
WINDOWS-50221
CP936
GBK
MS936
WINDOWS-936
CP950
BIG5
BIG5HKSCS
BIG5-HKSCS
CP949
UHC
EUC-KR
CP1361
JOHAB
437
CP437
IBM437
CSPC8CODEPAGE437
CP737
CP775
IBM775
CSPC775BALTIC
852
CP852
IBM852
CSPCP852
CP853
855
CP855
IBM855
CSIBM855
857
CP857
IBM857
CSIBM857
CP858
860
CP860
IBM860
CSIBM860
861
CP-IS
CP861
IBM861
CSIBM861
863
CP863
IBM863
CSIBM863
CP864
IBM864
CSIBM864
865
CP865
IBM865
CSIBM865
869
CP-GR
CP869
IBM869
CSIBM869
CP1125
IBM037
IBM437
IBM500
ASMO-708
DOS-720
ibm737
ibm775
ibm850
ibm852
IBM855
ibm857
IBM00858
IBM860
ibm861
DOS-862
IBM863
IBM864
IBM865
cp866
ibm869
IBM870
windows-874
cp875
shift_jis
shift-jis
gb2312
ks_c_5601-1987
big5
big5hkscs
big5-hkscs
IBM1026
IBM01047
IBM01140
IBM01141
IBM01142
IBM01143
IBM01144
IBM01145
IBM01146
IBM01147
IBM01148
IBM01149
windows-1250
windows-1251
windows-1252
windows-1253
windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
Johab
macintosh
x-mac-japanese
x-mac-chinesetrad
x-mac-korean
x-mac-arabic
x-mac-hebrew
x-mac-greek
x-mac-cyrillic
x-mac-chinesesimp
x-mac-romanian
x-mac-ukrainian
x-mac-thai
x-mac-ce
x-mac-icelandic
x-mac-turkish
x-mac-croatian
x-Chinese_CNS
x-cp20001
x_Chinese-Eten
x-cp20003
x-cp20004
x-cp20005
x-IA5
x-IA5-German
x-IA5-Swedish
x-IA5-Norwegian
us-ascii
x-cp20261
x-cp20269
IBM273
IBM277
IBM278
IBM280
IBM284
IBM285
IBM290
IBM297
IBM420
IBM423
IBM424
x-EBCDIC-KoreanExtended
IBM-Thai
koi8-r
IBM871
IBM880
IBM905
IBM00924
EUC-JP
x-cp20936
x-cp20949
cp1025
koi8-u
iso-8859-1
iso8859-1
iso_8859-1
iso_8859_1
iso-8859-2
iso8859-2
iso_8859-2
iso_8859_2
iso-8859-3
iso8859-3
iso_8859-3
iso_8859_3
iso-8859-4
iso8859-4
iso_8859-4
iso_8859_4
iso-8859-5
iso8859-5
iso_8859-5
iso_8859_5
iso-8859-6
iso8859-6
iso_8859-6
iso_8859_6
iso-8859-7
iso8859-7
iso_8859-7
iso_8859_7
iso-8859-8
iso8859-8
iso_8859-8
iso_8859_8
iso-8859-9
iso8859-9
iso_8859-9
iso_8859_9
iso-8859-13
iso8859-13
iso_8859-13
iso_8859_13
iso-8859-15
iso8859-15
iso_8859-15
iso_8859_15
x-Europa
iso-8859-8-i
iso8859-8-i
iso_8859-8-i
iso_8859_8-i
iso-2022-jp
csISO2022JP
iso-2022-jp
iso-2022-kr
iso2022-kr
x-cp50227
euc-jp
EUC-CN
euc-kr
hz-gb-2312
GB18030
x-iscii-de
x-iscii-be
x-iscii-ta
x-iscii-te
x-iscii-as
x-iscii-or
x-iscii-ka
x-iscii-ma
x-iscii-gu
x-iscii-pa
 

Вложения

  • win_iconv-18-05-2016.zip
    125.3 KB · Просмотры: 75
Последнее редактирование:
Скачал файл
запускатор переместил в одну папку
кодировки поддерживаемые
CP51932 и windows-1251
но на выходе пустой файл
 
Из японской в ANSI ?
Скиньте пример, посмотрю.

Попробуйте перекачать программу. Я пересобрал её из исходников за 18.05.2016.
Предыдущая была за 2012 год.
 
Последнее редактирование модератором:
@dvk, проверил присланный вами пример.
У вас не работает, потому что имя программы указано неверно.
Да и цикл неверен.

Вот так нужно:
Код:
for %%f in (*.txt) do win_iconv -f WINDOWS-1251 -t UTF-8 "%%f" > "%%~nf.xml"
 
Тебя интересует именно автоматизированный консольный инструмент?

Если достаточно в ручном режиме, то я обычно использую онлайновые ресурсы:

Ну или в том же N++ при открытии он авто-определяет, и в строке состояния пишет кодировку.

Для автоматизации ничего такого универсального не использовал, поэтому не подскажу.

Разве что если известно заранее, что кодировка может быть среди наиболее популярных ANSI / OEM866 / UTF8 / UTF16LE, которые без BOM, то под такие писал свой детектор.
 
Ну или в том же N++ при открытии он авто-определяет, и в строке состояния пишет кодировку.
Добавлю, что для него есть ещё плагин Штирлитц, который является продолжением той самой известной утилиты от того же Лукьянина.
 
Назад
Сверху Снизу