проблема кодирования? - PullRequest
0 голосов
/ 08 января 2011

Я работаю с TXT-файлами и недавно обнаружил, например, эти символы в некоторых из них:

http://pastebin.com/raw.php?i=Bdj6J3f4

что могут быть эти персонажи? неправильная кодировка? я просто хочу использовать обычные UTF-8 TXT файлы, но когда я использую:

iconv -t UTF-8 input.txt > output.txt


это все то же самое.

Когда я открываю файлы в gedit, копирую и вставляю их в другие текстовые файлы, тогда нет таких символов, как в pastebin. Таким образом, gedit может решить эту проблему, он хорошо кодирует файлы TXT. но слишком много TXT-файлов.

почему в текстовых файлах http://pastebin.com/raw.php?i=Bdj6J3f4 -подобные символы? они могут быть преобразованы в "нормальные символы"? Я не вижу, например, символа "ÃŒ", когда я открываю файлы с помощью vim, только после того, как я "работаю с ними" (например, awk и т. Д.)

Ответы [ 3 ]

0 голосов
/ 09 января 2011

С man iconv:

Программа iconv преобразует текст из одной кодировки в другую кодировку.Точнее, он преобразует кодировку, заданную для опции -f, в кодировку, указанную для опции -t.Любая из этих кодировок по умолчанию соответствует кодировке текущей локали

Поскольку вы не указали опцию -f, предполагается, что файл закодирован с кодировкой вашей текущей локали (вероятно, UTF-8),что, видимо, не соответствует действительности.Ваши текстовые редакторы (gedit, vim) выполняют некоторое обнаружение кодировки - вы можете проверить, какую кодировку они обнаруживают (я не знаю, как - я не использую ни одну из них) и использовать это в качестве опции -f iconv (или сохранитьоткрыть файл с нужной вам кодировкой, используя один из этих текстовых редакторов).

Вы также можете использовать какой-либо инструмент для обнаружения кодирования, например Python chardet module :

$ python -c "import chardet as c; print c.detect(open('file.txt').read(4096))"
{'confidence': 0.7331842298102511, 'encoding': 'ISO-8859-2'}
0 голосов
/ 09 января 2011

.. решено!

как:

Я просто щелкнул правой кнопкой мыши по папкам, содержащим файлы TXT, и вставил их в другую папку ..: O и presto..theres no moreуродливые персонажи ..

0 голосов
/ 08 января 2011

Было бы полезно, если бы вы опубликовали фактическое двоичное содержимое вашего файла (возможно, используя вывод od -t x1). Pastebin возвращает это как HTML:

"& Atilde; & OElig;" "& Atilde;" "& Atilde; & копировать;"

Первая строка соответствует U + 00C3 U + 0152. Последняя строка соответствует U + 00C3 U + 00A9, который является строкой "\ ux00e9" в UTF ("\ xc3 \ xa9") с байтами UTF-8, которые интерпретируются как Latin-1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...