У меня есть текстовый файл:
$ file -i x.txt
x.txt: text/plain; charset=unknown-8bit
$ file x.txt
x.txt: Non-ISO extended-ASCII text, with CRLF line terminators
И есть некоторые символы, которые неправильно закодированы:
trwa³y, sta³y, usuwaæ
Как я могу изменить кодировку этого файла на UTF-8? До сих пор я пробовал следующий способ:
$ iconv -f ASCII -t UTF-8 x.txt
puiconv: illegal input sequence at position 4
Может быть, я должен как-то использовать extended ASCII
( high ASCII
), но не могу найти его в iconv
списке кодировки.
character-encoding
text
Patryk
источник
источник
iconv -f windows-1252 -t utf-8 file
Ответы:
file
говорит вам «текст не-ISO с расширенной ASCII», потому что он обнаруживает, что это:Вы должны выяснить, в какой кодировке находится этот файл. Вы можете попробовать автоматическое распознавание Enca . Возможно, вам придется подтолкнуть его в правильном направлении, указав на каком языке находится текст.
Чтобы преобразовать файл, передайте
-x
опцию:enca -L polish x.txt -x utf8 >x.utf8.txt
Если вы не можете или не хотите использовать Enca, вы можете угадать кодировку вручную. Немного оглядываясь, сказал мне, что это польский текст и слова trwały, stały, usuważ, поэтому мы ищем перевод, где
³
→ł
иæ
→ż
. Это выглядит как latin-2 или latin-10 или более вероятно (с учетом «non-ISO» CP1250, который вы просматриваете как latin1 . Чтобы преобразовать файл в UTF-8, вы можете использовать recode или iconv .источник
< x.txt > x.utf8.txt
почему мы используем,<
а затем>
? Как это работает?<
и>
выполните перенаправление ввода и вывода соответственно .Откройте текстовый файл с помощью gedit, и в диалоговом окне «Сохранить как ...» вы увидите текущую кодировку.
источник
Вы пытались узнать, какая именно кодировка x.txt? Вы получите список поддерживаемых кодировок с
Иногда со мной случается, что я получаю несоответствие между latin1 и utf8. Тогда это часто помогает преобразовать его и обратно в utf8 и наоборот.
источник
Я создал скрипт автоматического преобразования с использованием библиотеки enca , я использую его на своем NAS для преобразования субтитров в UTF-8, но его можно использовать для любого автоматического преобразования
Не стесняйтесь использовать :)
РЕДАКТИРОВАТЬ:
источник