Який найшвидший, найпростіший інструмент або спосіб перетворення текстових файлів між наборами символів?
Зокрема, мені потрібно перетворити з UTF-8 на ISO-8859-15 і навпаки.
Все йде: однолінійки улюбленої мови сценаріїв, інструменти командного рядка або інші утиліти для ОС, веб-сайтів тощо.
Найкращі рішення поки що:
У Linux / UNIX / OS X / cygwin:
Gnu iconv, запропонований Троелями, Арвін найкраще використовувати як фільтр . Це, здається, є загальнодоступним. Приклад:
$ iconv -f UTF-8 -t ISO-8859-15 in.txt > out.txt
Як зазначив Бен , існує онлайн-конвертер, що використовує iconv .
Gnu recode ( посібник ), запропонований Cheekysoft , перетворить один або кілька файлів на місці . Приклад:
$ recode UTF8..ISO-8859-15 in.txt
У цьому використовується коротший псевдонім:
$ recode utf8..l9 in.txt
Recode також підтримує поверхні, які можна використовувати для перетворення між різними типами закінчення рядків і кодуваннями:
Перетворити нові рядки з LF (Unix) в CR-LF (DOS):
$ recode ../CR-LF in.txt
Файл кодування Base64:
$ recode ../Base64 in.txt
Ви також можете їх комбінувати.
Перетворення файлу UTF8, закодованого Base64, із закінченнями рядка Unix, у закодований Base64 файл латинської 1 із закінченнями рядка Dos:
$ recode utf8/Base64..l1/CR-LF/Base64 file.txt
У Windows з Powershell ( Jay Bazuzi ):
PS C:\> gc -en utf8 in.txt | Out-File -en ascii out.txt
(Немає підтримки ISO-8859-15; він говорить про те, що підтримувані діаграми є unicode, utf7, utf8, utf32, ascii, bigendianunicode, за замовчуванням та oem.)
Редагувати
Ви маєте на увазі підтримку iso-8859-1? Використання "String" робить це, наприклад, навпаки
gc -en string in.txt | Out-File -en utf8 out.txt
Примітка. Можливі значення перерахування - "Невідомо, Рядок, Unicode, Байт, BigEndianUnicode, UTF8, UTF7, Ascii".
- CsCvt - Kalytta's Character Converter - це ще один чудовий інструмент перетворення на основі командного рядка.
recode
він також буде фільтром, якщо ви не передасте його імена файлів, наприклад:recode utf8..l9 < in.txt > out.txt
enca
, не потрібно вказувати кодування вводу. Досить часто просто вказати мову: enca -L ru -x utf8 FILE.TXT
.
iconv -f UTF-32 -t UTF-8 input.csv > output.csv
збереженого лише близько семисот тисяч рядків, лише третина. Використовуючи версію на місці, iconv -f UTF-32 -t UTF-8 file.csv
успішно перетворено всі 2 мільйони плюс рядки.
gc -en Ascii readme.html | Out-File -en UTF8 readme.html
але він перетворює файл у utf-8, але тоді він порожній! Блокнот ++ каже, що файл у форматі Ansi, але читання, наскільки я розумію, це навіть не дійсна діаграма ?? uk.answers.yahoo.com/question/index?qid=20100927014115AAiRExF