



Проблема с кодировками возникает довольно часто. Иногда надо прочитать файлы, созданные в Windows (и сохраненные в кодировке cp1251), в системе Linux с локалью koi8-r, а иногда - наоборот, какую-нибудь документацию в koi8-r в системе с локалью cp1251. Могут встретиться и файлы в utf8. Для просмотра подобных файлов достаточно перекодировать их в системную кодировку, а для редактирования желателен редактор, поддерживающий перекодировку.
Простейший (и универсальный) способ просмотра файла в несистемной кодировке - перекодирование программой iconv. Синтаксис такой:
iconv -f <�исходная кодировка> -t <�конечная кодировка> <�входной файл>
В качестве имени кодировки может стоять, например, cp1251, koi8-r, cp866 или utf8. Результат преобразования будет напечатан на стандартный вывод. Если надо его сохранить - используйте перенаправление вывода в файл (добавив в конец строки > foo.txt). Для простого просмотра файла передайте выод команды iconv программе less (добавив | less в конец команды).
Теперь о редактировании. Многие популярные редакторы умеют работать с файлами в различных кодировках. Из графических это, в чатности, kwrite/kate, в меню которых можно указать используемую в текущем файле кодировку.
Встроенные в mc редактор и вьюер также поддерживают различные кодировки (правда, их не очень много и в их число не входит utf8). Сначала необходимо в режиме панелей открыть пункт меню НастройкиБиты символов и выбрать там используемую в системе кодировку. После этого можно в режиме просмотра или редактирования нажать Ctrl-T и выбрать кодировку файла. Выбранная кодировка запоминается и будет использоваться во всех дальнейших сеансах просмотра и редактирования, пока не будет изменена пользователем.
В vim открытый файл можно переоткрыть с использованием любой кодировки командой
:e ++enc=cp1251
Здесь вместо cp1251 должна стоять используемая в файле кодировка. Кроме того, открытый файл можно сохранить в любой кодировке командой
:w ++enc=cp1251
Здесь вместо cp1251 опять же может стоять любая кодировка.