Переход к кодировке UTF-8

Создан: 10.03.2008
Иванов Аркадий

 

Многие Линуксы и их приложения на сегодня позволяют работать со шрифтами и символами в этой кодировке. Это касается и названий файлов/каталогов и их содержимого. Более ранний способ работы предполагал использование однобайтовых кодировок. Наиболее часто использовались KOI8-R и CP1251. Универсальность UTF8 подталкивает к переходу на неё.

 

Перекодировка названий файлов и каталогов.

Здесь поможет программа convmv. У меня в дистрибутиве был просто RPM-пакет для неё.

Для того, чтобы перекодировать название одного файла(или каталога) из koi8-r, надо просто написать:

convmv -f koi8-r -t utf8 --nosmart --notest название_файла

-f задаёт исходную кодировку названия
-t задаёт конечную кодировку названия
--nosmart - говорит программе не быть слишком умной в отношении определения текущей кодировки. Мне пришлось ставить этот ключ, иначе программа на все файлы сообщала, что они уже в utf8 и отказывалась конвертировать имя.
--notest - говорит программе, что надо сделать конверсию, а не просто напечатать тестовый результат конверсии.

 

Если хочется сразу просмотреть и переименовать всё в подкаталогах, то:

convmv -f koi8-r -t utf8 --nosmart --notest -r название_каталога

-r как раз и говорит программе, что надо сделать рекурсивный поиск по всем подкаталогам.

 

Редактирование текстовых файлов.

 

Ну это первое, во что вы попадаете при переходе на UTF8, :-) поскольку большинство текстовых файлов обычно набрано в однобайтовой кодировке.
Редактор Kwrite позволяет вам на лету менять кодировку ввода-вывода, так что, это не проблема.

 

Настройки системы.

У юзера значение LANG д.б. ru_RU.UTF-8. Также LC_CTYPE д.б. ru_RU.UTF-8

 

Konsole.

В приложении konsole установить фонт utf8, чтобы Midnight Commander симпатично смотрелся. (И не забыть сохранить настройки.)

 

Перекодировка содержимого файлов.

iconv -f koi8-r -t utf8 input_file  >output_file

 

LaTeX.

  • В AltLinux необходимо дополнительно установить пакет tetex-latex-unicode.
  • В документе добавить:
    \usepackage{ucs}
    \usepackage[utf8]{inputenc}