Автор Тема: CP1251 в UTF8 и нетолько...  (Прочитано 4349 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн VolVik

  • Новичок
  • **
  • Автор темы
  • Сообщений: 26
  • Удача терпеливых любит!!!
    • SPO
CP1251 в UTF8 и нетолько...
« : Декабрь 15, 2010, 12:03:13 »
Многие из нас сталкивались с такого рода ситуациями: скачал какой-нибудь текстовый документик, открыл, а там вместо ожидаемого текста сплошные крякозябы...
Реакция на это у каждого своя, но осадок на душе всё же остаётся. Оказывается, выход есть и из подобных ситуаций. Причём, довольно-таки простой - переконвертировать файл в нужную кодировку. И времени на это уйдёт не более минуты. Нужно всего лишь набрать в терминале нехитрую команду:
iconv -f cp1251 -t utf8 имя_исходного_файла > имя_файла_с_нужной_кодировкой

Спасибо за это нужно сказать библиотеке libtext-iconv-perl, работающей совместно с libc6.
Имеются, конечно же, и подводные камни. Например, можно получить ошибку при выполнении команды если в имени файла имеются скобки. Тогда просто-напросто в начале переименуем файл, удалив скобки. Можно так же получить и пустой файл - это результат одинаковых имён (исходного и получаемого) файлов, при нахождении того и другого в одной директории. Т.е., если Вы хотите сохранить перекодированный файл в одной директории с исходным, дайте ему другое имя (добавьте, например, к имени 1).
Я мало пишу, но темы читаю! :)
SPO

Оффлайн Universe

  • Global Moderator
  • *****
  • Сообщений: 270
Re: CP1251 в UTF8 и нетолько...
« Ответ #1 : Декабрь 15, 2010, 12:07:52 »
А я просто взяла, и настроила gedit так, чтобы он нормально понимал кодировки -

gconf-editor
apps — gedit-2 — preferences — encodings — auto_detected - там оставила верхней WINDOWS-1251 и UTF-8

Оффлайн VolVik

  • Новичок
  • **
  • Автор темы
  • Сообщений: 26
  • Удача терпеливых любит!!!
    • SPO
Re: CP1251 в UTF8 и нетолько...
« Ответ #2 : Декабрь 15, 2010, 12:23:20 »
Иногда текстовые файлы нужны не только для чтения.
Допустим, какой-либо php-файл или sql. Система не хочет их воспринимать не в знакомой кодировке.
Я мало пишу, но темы читаю! :)
SPO

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3210
Re: CP1251 в UTF8 и нетолько...
« Ответ #3 : Декабрь 15, 2010, 12:47:57 »

    Ну и для ясности, в какой же кодировке сохранён файл, выполняем команду
file -i файл.txt
Например:
$ file -i index.html
index.html: text/html; charset=us-ascii
$ file -i index.php
index.php: text/x-php; charset=iso-8859-1