file
говорит вам «текст не-ISO с расширенной ASCII», потому что он обнаруживает, что это:
- скорее всего, «текстовый» файл из-за отсутствия управляющих символов (байтовые значения 0–31), кроме разрывов строк;
- «Extended-ASCII», потому что есть символы вне диапазона ASCII (байтовые значения ≥128);
- «Не-ISO», поскольку в диапазоне 128–159 есть символы ( ISO 8859 резервирует этот диапазон для контрольных символов).
Вы должны выяснить, в какой кодировке находится этот файл. Вы можете попробовать автоматическое распознавание Enca . Возможно, вам придется подтолкнуть его в правильном направлении, указав на каком языке находится текст.
enca x.txt
enca -L polish x.txt
Чтобы преобразовать файл, передайте -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 .
recode CP1250..utf8 <x.txt >x.utf8.txt
iconv -f CP1250 -t UTF-8 <x.txt >x.utf8.txt