Iconv windows 1251 utf 8 cmd

I need to convert a text file to UTF-8 format via Windows command prompt. This needs to be done on another machine and I do not have rights to install software on that machine. I need something lik...

I need to convert a text file to UTF-8 format via Windows command prompt. This needs to be done on another machine and I do not have rights to install software on that machine. I need something like:

c:notepad   source-file target-file --encoding option

Is there a Windows command prompt utility which can do it?

Kamil Maciorowski's user avatar

asked Jan 5, 2017 at 13:58

user1107888's user avatar

I need to convert a text file to utf-8 format via windows command prompt

You can easily do this with PowerShell:

Get-Content .test.txt | Set-Content -Encoding utf8 test-utf8.txt

Further Reading

  • Convert from most encodings to utf8 with powershell

answered Jan 5, 2017 at 14:38

DavidPostill's user avatar

DavidPostillDavidPostill

149k77 gold badges344 silver badges383 bronze badges

13

Use iconv from GNUWin32 pack. It is much faster, especially if your files are about or more than 1 Gb.

"C:Program Files (x86)GnuWin32biniconv.exe" -f cp1251 -t utf-8 source.txt > result.txt

Kamil Maciorowski's user avatar

answered Feb 21, 2018 at 15:09

Raul N-k's user avatar

Raul N-kRaul N-k

511 silver badge1 bronze badge

3

Here is for each convert *.text file to *.sql file:

foreach ($file in get-ChildItem *.txt) {
    Echo $file.name
    Get-Content $file | Set-Content -Encoding utf8 ("$file.name" +".sql")
 }

answered May 20, 2019 at 10:20

nobjta_9x_tq's user avatar

1

You can do this from the command prompt as follows:

powershell -command "Get-Content .test.txt" > test-utf8.txt

It turns out that piping the output to a file from the command prompt saves as utf-8.

answered Sep 30, 2020 at 20:49

Gord Hooker's user avatar

1

POWERSHELL: # Assumes Windows PowerShell, use -Encoding utf8BOM with PowerShell Core. For multiple files:

FIRST SOLUTION:

$files = Get-ChildItem c:Folder1 -Filter *.txt 

foreach ($file in $files) {

    Get-Content $file.FullName | Set-Content "E:TempDestination$($file.Name)" -Encoding utf8BOM

}

OR, SECOND SOLUTION (for multiple files):

get-item C:Folder1*.* | foreach-object {get-content -Encoding utf8BOM $_ | out-file ("C:Folder1" + $_.Name) -encoding default}

OR, THE THIRD SOLUTION: (only for 2 files)

$a = "C:/Folder1/TEST_ro.txt"
 $b = "C:/Folder1/TEST_ro-2.txt"
 (Get-Content -path $a) | Set-Content -Encoding UTF8BOM -Path $b

answered Aug 1, 2022 at 14:19

Just Me's user avatar

Just MeJust Me

7568 silver badges33 bronze badges

Dragokas


  • #1

Конвертирование текстовых файлов с одной кодировки в другую с помощью 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
    · Просмотры: 55

Последнее редактирование: 31 Янв 2021

  • #2

Скачал файл
запускатор переместил в одну папку
кодировки поддерживаемые
CP51932 и windows-1251
но на выходе пустой файл

Dragokas


  • #3

Из японской в ANSI ?
Скиньте пример, посмотрю.
[automerge]1532264782[/automerge]
Попробуйте перекачать программу. Я пересобрал её из исходников за 18.05.2016.
Предыдущая была за 2012 год.

Последнее редактирование: 22 Июл 2018

dvk

Новый пользователь


  • #4

тоже пустой файл получается

Dragokas


Dragokas


  • #6

@dvk, проверил присланный вами пример.
У вас не работает, потому что имя программы указано неверно.
Да и цикл неверен.

Вот так нужно:

for %%f in (*.txt) do win_iconv -f WINDOWS-1251 -t UTF-8 "%%f" > "%%~nf.xml"

  • #7

А ,когда кодировка не известна ?

Dragokas


  • #8

Тебя интересует именно автоматизированный консольный инструмент?

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

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

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

Разве что если известно заранее, что кодировка может быть среди наиболее популярных ANSI / OEM866 / UTF8 / UTF16LE, которые без BOM, то под такие писал свой детектор.

regist


  • #9

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

Добавлю, что для него есть ещё плагин Штирлитц, который является продолжением той самой известной утилиты от того же Лукьянина.

I’d say that the task (convert encoding of given files from one encoding to another like iconv tool does) is solvable using only cmd: first, create two auxiliary binary files bomUtf16le.bin and bomUtf8.bin as follows:

REM do dot run as a batch file; copy&paste the code into an open cmd window

:: create a testing folder and change the current directory
2>NUL md .SO69595742
pushd    .SO69595742

:: create file bomUtf16le.bin (BOM, encoding utf16LE)
>NUL chcp 1252
<nul set /p x=ÿþ>bomUtf16le.bin
:: create file bomUtf8.bin    (BOM, encoding utf8)
>NUL chcp 1252
<nul set /p x=>bomUtf8.bin

:: create file a1200.txt (a Cyrillic text, encoding utf16LEbom)
>NUL copy /Y /B bomUtf16le.bin a1200.txt 
cmd /U /D /C "(echo русский текст&echo кирилловский шрифт)>>a1200.txt"

popd

Important: do dot run above code snippet from a batch file; copy&paste the code into an open cmd window!
The code creates an initial testing file a1200.txt (encoding utf16LEbom). We could begin with a file of any supported encoding 1251 or 866 or 65001(==Utf8bom) because below conversions are designed to work cyclically (proved by binary comparison using fc command, and manually confirmed by opening all files in notepad++). The following code snippet assumes initial testing file encoding utf16LEbom.

Then run the following (run as a batch file, or copy&paste the code into an open cmd window):

@ECHO OFF
SETLOCAL EnableExtensions

:: run as a batch file, or copy&paste the code into an open cmd window

2>NUL md .SO69595742
pushd    .SO69595742

:: convert file a1200.txt to cp1251
>NUL chcp 1251
type a1200.txt>x1251.txt

:: convert file a1200.txt to cp866
>NUL chcp 866
type a1200.txt>x866.txt

:: convert file a1200.txt to utf-8 BOM
>NUL copy /Y /B bomUtf8.bin x65001bom.txt
>NUL chcp 65001
type a1200.txt>>x65001Bom.txt

:: convert file x866.txt to file x1200.txt (encoding utf16LEbom)
>NUL copy /Y /B bomUtf16le.bin x1200.txt
>NUL chcp 866
cmd /U /D /C "type x866.txt>>x1200.txt"

:: Perform a binary comparison (FC: no differences encountered)
fc /B x1200.txt a1200.txt

:: convert file x1251.txt to file y1200.txt (encoding utf16LEbom)
:: analogous to: x866.txt to file x1200.txt
>NUL copy /Y /B bomUtf16le.bin y1200.txt
>NUL chcp 1251
cmd /U /D /C "type x1251.txt>>y1200.txt"

:: Perform a binary comparison (FC: no differences encountered)
fc /B y1200.txt a1200.txt

:: convert file x65001bom.txt to file z1200.txt (encoding utf16LEbom)
>NUL chcp 65001
cmd /U /D /C "type x65001bom.txt>z1200.txt"

:: Perform a binary comparison (FC: no differences encountered)
fc /B z1200.txt a1200.txt

:: convert file a1200.txt to x65001noBom.txt (utf-8 no BOM, merely for completeness)
>NUL chcp 65001
type a1200.txt>x65001noBom.txt

dir *.txt | findstr /I ".txt$"

popd

goto :eof

Result: .SO69595742.bat

Comparing files x1200.txt and A1200.TXT
FC: no differences encountered

Comparing files y1200.txt and A1200.TXT
FC: no differences encountered

Comparing files z1200.txt and A1200.TXT
FC: no differences encountered

17/10/2021  19:24                72 a1200.txt
17/10/2021  21:49                72 x1200.txt
17/10/2021  21:49                35 x1251.txt
17/10/2021  21:49                67 x65001Bom.txt
17/10/2021  21:49                64 x65001noBom.txt
17/10/2021  21:49                35 x866.txt
17/10/2021  21:49                72 y1200.txt
17/10/2021  21:49                72 z1200.txt

Summary (incomplete): file conversions (⇆ reversible)

Direct:

  • utf-16-le-bomcp866
  • utf-16-le-bomcp1251
  • utf-16-le-bomutf-8-bom
  • utf-16-le-bomutf-8-noBom

Possible (thru an auxiliary file):

  • cp866utf-16-le-bomcp1251
  • cp866utf-16-le-bomutf-8-bom
  • utf-8-bomutf-16-le-bomcp1251

Possible utf-8-noBomutf-8-bom as follows:

copy /B bomUtf8.bin + fileutf-8-noBom.txt fileutf-8-bom.txt

Tested in Windows 10 with the following Administrative language settings; not tested with that Beta checkbox unticked:
Administrative language settings

iconv — утилита UNIX (и одноимённая библиотека) для преобразования текста из одной кодировки в другую. Также портирована под Windows.

Содержание

  • 1 Синтаксис
  • 2 Описание
  • 3 Примеры
    • 3.1 Массовое перекодирование
    • 3.2 Массовое перекодирование windows
  • 4 См. также
  • 5 Ссылки

Синтаксис

iconv [-c] [-s] [-f encoding] [-t encoding] [inputfile …]
iconv -l

Описание

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

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

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

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

Примеры

Массовое перекодирование

Следующий скрипт находит все файлы в текущем каталоге с расширением *.java, перекодирует их в UTF-8 и результат копирует в каталог res:

mkdir res
find -maxdepth 1 -iname «*.java» -type f -exec bash -c "iconv -c -f WINDOWS-1251 -t UTF-8 {} > ./res/{}" ;

Перекодирование всех файлов в каталоге с их заменой:

for i in *; do iconv -f WINDOWS-1251 -t UTF-8 "$i" >tmp; mv tmp "$i"; done

Рекурсивное перекодирование всех файлов необходимого типа (в примере — txt):

find . -name '*.txt' | while read i; do iconv -f WINDOWS-1251 -t UTF-8 "$i" >tmp; mv tmp "$i"; done

Рекурсивное перекодирование всех файлов html:

# !/bin/sh
find . -type f -name '*.htm' -o -name '*.html' | while read i
    do
    echo $i
    iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp
    mv -f tmp "$i"
    done

Массовое перекодирование windows

Следующий набор скриптов находит все файлы в текущем каталоге с расширением *.txt, перекодирует в CP1251 из KOI8-R:

all.cmd:

for /R %%i in (.) do call txt.cmd %%i

txt.cmd:

set cd2=%cd%
cd %1
for %%j in (*.txt) do call %cd2%iconv2.cmd %%j
cd %cd2%

iconv2.cmd:

iconv -c -f KOI8-R -t CP1251 %1 > win.%1 
del %1
rename win.%1 %1

Другой способ (через cmd):

Прежде чем выполнять эту команду, нужно добавить путь к программе iconv.exe в переменную окружения Path:

for %%i in (*.txt) do iconv -f cp1251 -t utf-8 "%%i" > utf8/%%i

Команда перекодирует все файлы с расширением «txt» и положит перекодированные файлы в заранее созданную папку utf8.

См. также

  • recode
  • enconv

Ссылки

  • Проект OpenNet: man iconv(1) с массой дополнительных ссылок
  • Реализация в рамках проекта GNU  (англ.)
    • Версия для MS Windows  (англ.) в рамках проекта GnuWin32
  • Порт FreeBSD  (англ.)
Кодировки символов
Основы алфавит • текст (файл • данные) • набор символов • конверсия
Исторические кодировки Докомп.: семафорная (Макарова) • Морзе • Бодо • МТК-2
Комп.: 6-битная • УПП • RADIX-50 • EBCDIC (ДКОИ-8) • КОИ-7 • ISO 646
современное
8-битное
представление
символы ASCII (управляющие • печатные) • не-ASCII (псевдографика)
8-битные код.стр. Кириллица: КОИ-8 • Основная кодировка • MacCyrillic
ISO 8859 1 (лат.) • 2 • 3 • 4 • 5 (кир.) • 6 • 7 • 8 • 9 • 10 • 11 • 12 • 13 • 14 • 15 (€) • 16
Windows 1250 • 1251 (кир.) • 1252 • 1253 • 1254 • 1255 • 1256 • 1257 • 1258 • WGL4
IBM & DOS 437 • 850 • 852 • 855 • 866 «альт.» • МИК
Многобайтные Традиционные DBCS (GB2312) • HTML
Unicode UTF-32 • UTF-16 • UTF-8 • список символов (кириллица)
Связанные темы интерфейс пользователя • раскладка клавиатуры • локаль • перевод строки • шрифт • транслит • нестандартные шрифты
Утилиты iconv • recode

0 / 0 / 0

Регистрация: 17.08.2013

Сообщений: 4

1

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

17.08.2013, 22:17. Показов 41015. Ответов 9


Доброго времени суток! В общем есть стандартный txt файл. Нужно из командной строки изменить кодировку текста в нём на unicode (т.е. сохранить как «Текстовый документ в Юникоде», если делать это через блокнот). Спасибо.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Dragokas

Эксперт WindowsАвтор FAQ

17953 / 7590 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

17.08.2013, 23:09

2

Bash
1
CMD /U /C Type file1.txt> result.txt

или использовать внешнюю утилиту win_iconv: https://www.cyberforum.ru/post4854353.html

Bash
1
win_iconv -f WINDOWS-1251 -t UTF-16LE "UTFtext.txt" > "DOStext.txt"



1



Ron26

0 / 0 / 0

Регистрация: 17.08.2013

Сообщений: 4

18.08.2013, 00:08

 [ТС]

3

Первая команда выдала изуродованный текст, с частично непонятной кодировкой. Не хочется использовать никаких внешних утилит. Я где-то нарыл батник, который делает, что мне нужно:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
@Echo Off
SetLocal EnableExtensions
 
Set $FILE=bombom.txt
Set $TEMP=bombom.tmp
 
CHCP 1251
Echo яю>%$TEMP%
CMD /U /C Type %$FILE% >>%$TEMP%
 
If Exist %$TEMP% DEL /F/Q %$FILE%
REN %$TEMP% %$FILE%

Но после него в начале текстового файла появляется такой ਍ символ, что для меня смертельно. Очень не хочется искать консольный текстовый редактор!



0



100 / 94 / 8

Регистрация: 07.08.2013

Сообщений: 299

18.08.2013, 15:42

4

По начальным символам файла определяется какой UTF у вас используется в файле.
http://ru.wikipedia.org/wiki/Byte_order_mark

Ваше «яю» это не что иное как «0xFE 0xFF». Признак UTF-16.



1



Dragokas

Эксперт WindowsАвтор FAQ

17953 / 7590 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

18.08.2013, 18:48

5

Ron26, потому что Вы сохранили бат-файл в кодировке OEM-866, а приведенный Вами пример предназначен для WIN-1251.

Исходник кода в WIN-1251.

Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
:: преобразование текстового файла в unicode (utf-16 LE)
:: вызов: to_uni infile outfile codepage
:: BAT-файл должен быть сохранен в кодировке WIN-1251
SetLocal
For /f "tokens=2 delims=:" %%G in ('CHCP') do Set _codepage=%%G
chcp 1251 >nul
CMD.EXE /D /A /C (set /p=яю)<NUL > "%~2"
CHCP %~3 >NUL
CMD.EXE /D /U /C TYPE "%~1" >> "%~2"
CHCP %_codepage% >NUL

Исходник кода в OEM-866

Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
:: преобразование текстового файла в unicode (utf-16 LE)
:: вызов: to_uni infile outfile codepage
:: BAT-файл должен быть сохранен в кодировке OEM-866
SetLocal EnableExtensions
For /f "tokens=2 delims=:" %%G in ('CHCP') do Set _codepage=%%G
chcp 866 >nul
for /F %%? in ('echo яю') do chcp 1251 >nul& CMD.EXE /D /A /C (set /p=яю)<NUL > "%~2"
CHCP %~3 >NUL
CMD.EXE /D /U /C TYPE "%~1" >> "%~2"
CHCP %_codepage% >NUL

Исправлю в полезных примерах, дабы не заводить в заблуждение.



1



0 / 0 / 0

Регистрация: 17.08.2013

Сообщений: 4

19.08.2013, 12:10

 [ТС]

6

Спасибо, но я, наверное, забыл предупредить, что в cmd абсолютно нулевой. Можно объяснить, что делает этот исходный код, потому я в нём не нашёл никакого обращения к файлам. Извините, за мою малограмотность.



0



Dragokas

Эксперт WindowsАвтор FAQ

17953 / 7590 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

19.08.2013, 12:27

7

Ron26, Вам понадобятся:
Как создать batch файл?
Batch-файл может принимать аргументы запуска.
Русский текст в консоли

Иными словами: создайте обычный текстовый файл, скопируйте туда код. Сохраните с расширением bat или cmd.
Откройте консоль, перейдите в папку, где находится бат-файл.
Ведите команду:

Bash
1
имя_бат_файла имя_исходного_txt имя_unicode_txt

Альтернативно Вы можете в коде заменить все аргументы %~1 на «имя_исходного_txt», а все %~2 на «имя_unicode_txt» и запустить такой файл. Консоль не понадобится.



1



0 / 0 / 0

Регистрация: 17.08.2013

Сообщений: 4

19.08.2013, 21:06

 [ТС]

8

Всё заработало. Огромное спасибо!



0



0 / 0 / 0

Регистрация: 12.09.2016

Сообщений: 8

13.09.2016, 14:13

9

А как преобразовать из utf-16 LE в WIN-1251 ?



0



Эксперт WindowsАвтор FAQ

17953 / 7590 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

13.09.2016, 14:20

10



0



В Windows по умочанию используется кодировка символов CP1251, чем иногда доставляет проблем пользователям других, нормальных ОС, которые давно перешли на юникод и забыли о проблемах с кодировками как страшный сон. Но пользователи Windows как американцы, не знают, что существуют другие страны ОС и сохраняют субтитры в CP1251 что делает их нечитабельными для других.

Для решения этой проблемы есть iconv который как раз и служит для перекодировки текстовых файлов из одной кодировки в другую. Во всех почти дистрибутивах данный пакет устанавливается по умолчанию, но если его вдруг не оказалось — установите его с помощью вашего пакетного менеджера.

Для перекодировки достаточно ввести всего одну команду в терминале, а именно:

iconv -f cp1251 -t utf8 /Video/somefile.srt -o /Video/subtitles.srt

Поясню: ключ «f» задает исходную кодировку в которой файл находится сейчас, ключ «t» указывает целевую кодировку, ключ «o» задает путь для сохранения перекодированного файла.

Вот, все очень просто. Так же вы можете таким образом кодировать любые текстовые файлы. Часто и тексты песен попадаются с такой неприятной особенностью. 

Недавно узнал более простой и понятный способ перекодировки текстовых файлов — с помощью enconv.

Не буду приводить полного синтаксиса и описания всех ключей. Для перекодировки достаточно одного, например:

enconv -x UTF-8 somefile.txt

С помощью данной команды мы перегнали текст в UTF-8. Да, именно, просто перегнали без необходимости указания исходной кодировки. Все просто, указываем лишь ту которую хотим получить. Желательно сделать резервную копию файла, так как насколько я понял enconv’у нельзя задать выходной файл и изменяться кодировка будет прямо в исходном файле.

Если у кого то есть еще какие то методы перекодировки текстовых файлов — прошу в каменты.

Материал из Seo Wiki — Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

iconv — утилита UNIX (и одноимённая библиотека) для преобразования текста из одной кодировки в другую. Также портирована под Windows (http://gnuwin32.sourceforge.net/packages/libiconv.htm)

Содержание

  • 1 Синтаксис
  • 2 Описание
  • 3 Примеры
    • 3.1 Массовое перекодирование
  • 4 См. также
  • 5 Ссылки

Синтаксис

      iconv [-c] [-s] [-f encoding] [-t encoding] [inputfile ...]
      iconv -l

Описание

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

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

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

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

Примеры

Массовое перекодирование

Следующий скрипт находит все файлы в текущей директории с расширением *.java, перекодирует их в UTF-8 и результат копирует в папку res

mkdir res
find -maxdepth 1 -iname  "*.java"  -type f -exec bash -c "cat {} | iconv -c -f WINDOWS-1251  -t UTF-8> ./res/{}" ;

перекодирование всех файлов в директории с их заменой

for i in *; do iconv -f WINDOWS-1251 -t  UTF-8 "$i" >tmp; mv tmp "$i"; done

или файлы необходимого типа и рекурсивно (в примере txt файлы):

find . -name '*.txt' | while read i; do iconv -f  WINDOWS-1251 -t UTF-8 "$i" >tmp; mv tmp "$i"; done

или так (рекурсивное перекодирование всех файлов html):

#!/bin/sh
for i in `find . -name '*.html' -type f`
    do
    echo $i
    iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp
    mv -f tmp "$i"
    done

См. также

  • recode
  • enconv

Ссылки

  • Проект OpenNet: man iconv(1) с массой дополнительных ссылок
  • Реализация в рамках проекта GNU (англ.)
    • версия для MS Windows (англ.) в рамках проекта GnuWin32
  • Порт FreeBSD (англ.)

п·о·р

UNIX-команды и программы для режима командной строки (все программы)

Файловые системы chroot • dd • df • fdisk • fsck • grub • lilo • mke2fs • mkreiserfs • mkisofs • mkswap • mount • umount
Файлы и каталоги cat • chattr • cd • chmod • chown • chgrp • cksum • cmp • cp • diff • du • file • fuser • ln • ls • lsof • mkdir • mv • od • pwd • rm • rmdir • split • touch
Процессы at • crontab • exit • kill • killall • nice • nohup • pgrep • pidof • pkill • ps • renice • sleep • time • top • wait • watch
Пользователи env • finger • id • logname • mesg • passwd • su • sudo • uptime • w • wall • who • whoami • write
Сеть ftp • host • ifconfig • netcat • netstat • nmap • nslookup • ping • rlogin • ssh • traceroute • wget
Тексты AWK • comm • cut • ed • ex • expand • unexpand • fmt • head • iconv • join • less • more • paste • pr • sed • sort • tac • tail • tr • uniq • wc • xargs
Командная строка alias • basename • bash • bind • dirname • echo • expr • false • printf • test • true • unset
Поиск find • grep • strings • whereis • which
Разное banner • bc • cal • date • help • lp • man • history • size • tee • uname • yes
Кодировки символов
Основы → алфавит • текст ( файл • данные ) • набор символов • конверсия
Исторические кодировки → Докомп.: семафорная (Макарова) • Морзе • Бодо • МТК-2 Комп.: 6 бит • УПП • RADIX-50 • EBCDIC ( ДКОИ-8 ) • КОИ-7 • ISO 646
совре-
менное
8-битное
представ-
ление
символы → ASCII ( управляющие • печатные ) не-ASCII ( псевдографика )
8бит. код.стр. Разные →   Кириллица: КОИ-8 • ГОСТ 19768-87 • MacCyrillic
ISO 8859 → 1(лат.) 2 3 4 5(кир.) 6 7 8 9 10 11 12 13 14 15(€) 16
Windows → 1250 1251(кир.) 1252 1253 1254 1255 1256 1257 1258 | WGL4
IBM&DOS → 437 • 850 • 852 • 855 • 866 «альт.» ( МИК )
Много-
байтные
Традиционные → DBCS ( GB2312 ) • HTML
Unicode → UTF-16 • UTF-8 • список символов ( кириллица )
Связанные
темы →
интерфейс пользователя • раскладки клавиатур • локаль • перевод строки • шрифт • крокозябры • транслит • нестандартные шрифты • текст как изображение Утилиты: iconv • recode

de:Iconv

en:Iconv
fi:Iconv
ja:Iconv
pl:Iconv
pt:Iconv
sv:Iconv
uk:Iconv
zh:Iconv

iconv — утилита UNIX (и одноимённая библиотека) для преобразования текста из одной кодировки в другую. Также портирована под Windows.

Содержание

  • 1 Синтаксис
  • 2 Описание
  • 3 Примеры
    • 3.1 Массовое перекодирование
    • 3.2 Массовое перекодирование windows
  • 4 См. также
  • 5 Ссылки

Синтаксис

iconv [-c] [-s] [-f encoding] [-t encoding] [inputfile …]
iconv -l

Описание

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

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

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

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

Примеры

Массовое перекодирование

Следующий скрипт находит все файлы в текущей директории с расширением *.java, перекодирует их в UTF-8 и результат копирует в папку res:

mkdir res
find -maxdepth 1 -iname «*.java» -type f -exec bash -c "cat {} | iconv -c -f WINDOWS-1251 -t UTF-8> ./res/{}" ;

Перекодирование всех файлов в директории с их заменой:

for i in *; do iconv -f WINDOWS-1251 -t UTF-8 "$i" >tmp; mv tmp "$i"; done

Рекурсивное перекодирование всех файлов необходимого типа (в примере — txt):

find . -name '*.txt' | while read i; do iconv -f WINDOWS-1251 -t UTF-8 "$i" >tmp; mv tmp "$i"; done

Рекурсивное перекодирование всех файлов html:

# !/bin/sh
find . -type f -name '*.htm' -o -name '*.html' | while read i
    do
    echo $i
    iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp
    mv -f tmp "$i"
    done

Массовое перекодирование windows

Следующий набор скриптов находит все файлы в текущей директории с расширением *.txt, перекодирует в CP1251 из KOI8-R:

all.cmd:

for /R %%i in (.) do call txt.cmd %%i

txt.cmd:

set cd2=%cd%
cd %1
for %%j in (*.txt) do call %cd2%iconv2.cmd %%j
cd %cd2%

iconv2.cmd:

iconv -c -f KOI8-R -t CP1251 %1 > win.%1 
del %1
rename win.%1 %1

Другой способ (через cmd):

Прежде чем выполнять эту команду, нужно добавить iconv в переменную окружения Path:

for %i in (*.txt) do iconv -f cp1251 -t utf-8 %i > utf8/%i

Команда перекодирует все файлы с расширением «txt» и положит перекодированные файлы в заранее созданную папку utf8.

См. также

  • recode
  • enconv

Ссылки

  • Проект OpenNet: man iconv(1) с массой дополнительных ссылок
  • Реализация в рамках проекта GNU  (англ.)
    • Версия для MS Windows  (англ.) в рамках проекта GnuWin32
  • Порт FreeBSD  (англ.)
 Просмотр этого шаблона Команды Unix
 Просмотр этого шаблона POSIX.1-2008
Утилиты POSIX.1-2008 admin • alias • ar • asa • at • awk • basename • batch • bc • bg • c99 • cal • cat • cd • cflow • chgrp • chmod • chown • cksum • cmp • comm • command • compress • cp • crontab • csplit • ctags • cut • cxref • date • dd • delta • df • diff • dirname • du • echo • ed • env • ex • expand • expr • false • fc • fg • file • find • fold • fort77 • fuser • gencat • get • getconf • getopts • grep • hash • head • iconv • id • ipcrm • ipcs • jobs • join • kill • lex • link • ln • locale • localedef • logger • logname • lp • ls • m4 • mailx • make • man • mesg • mkdir • mkfifo • more • mv • newgrp • nice • nl • nm • nohup • od • paste • patch • pathchk • pax • pr • printf • prs • ps • pwd • qalter • qdel • qhold • qmove • qmsg • qrerun • qrls • qselect • qsig • qstat • qsub • read • renice • rm • rmdel • rmdir • sact • sccs • sed • sh • sleep • sort • split • strings • strip • stty • tabs • tail • talk • tee • test • time • touch • tput • tr • true • tsort • tty • type • ulimit • umask • unalias • uname • uncompress • unexpand • unget • uniq • unlink • uucp • uudecode • uuencode • uustat • uux • val • vi • wait • wc • what • who • write • xargs • yacc • zcat
 Просмотр этого шаблона GNU Coreutils
Файловые утилиты chgrp • chown • chmod • cp • dd • df • dir • dircolors • install • ln • ls • mkdir • mkfifo • mknod • mv • rm • rmdir • shred • sync • touch • vdir
Текстовые утилиты cat • cksum • comm • csplit • cut • expand • fmt • fold • head • join • md5sum • nl • od • paste • ptx • pr • sha1sum • sort • split • sum • tac • tail • tr • tsort • unexpand • uniq • wc
Shell-утилиты basename • chroot • date • dirname • du • echo • env • expr • factor • false • groups • hostid • id • link • logname • nice • nohup • pathchk • pinky • printenv • printf • pwd • readlink • seq • sleep • stat • stty • tee • test • true • tty • uname • unlink • users • who • whoami • yes
Кодировки символов
Основы → алфавит • текст ( файл • данные ) • набор символов • конверсия
Исторические кодировки → Докомп.: семафорная (Макарова) • Морзе • Бодо • МТК-2 Комп.: 6 бит • УПП • RADIX-50 • EBCDIC ( ДКОИ-8 ) • КОИ-7 • ISO 646
совре-
менное
8-битное
представ-
ление
символы → ASCII ( управляющие • печатные ) не-ASCII ( псевдографика )
8бит. код.стр. Разные →   Кириллица: КОИ-8 • ГОСТ 19768-87 • MacCyrillic
ISO 8859 → 1(лат.) 2 3 4 5(кир.) 6 7 8 9 10 11 12 13 14 15(€) 16
Windows → 1250 1251(кир.) 1252 1253 1254 1255 1256 1257 1258 | WGL4
IBM&DOS → 437 • 850 • 852 • 855 • 866 «альт.» • ( МИК ) • ( НИИ ЭВМ )
Много-
байтные
Традиционные → DBCS ( GB2312 ) • HTML
Unicode → UTF-16 • UTF-8 • список символов ( кириллица )
Связанные
темы →
интерфейс пользователя • раскладка клавиатуры • локаль • перевод строки • шрифт • кракозябры • транслит • нестандартные шрифты • текст как изображение Утилиты: iconv • recode

Понравилась статья? Поделить с друзьями:
  • Iconv windows 1251 utf 8 bash
  • Iconphile для windows 10 на русском
  • Iconbit не видит компьютер windows 10
  • Iconbit u65 duos драйвер windows 10
  • Iconbit u100 fm скачать драйвер windows 10