[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: переход с koi8 на utf8



Vladimir N. Shilov wrote:

> Добрый день!
> 
> Подскажите. где что почитать на тему правильной миграции с koi8 на utf8?
> Пробовал в лоб поменять locale - ожидаемого эффекта не принесло.
> Переход интересует полный -- и консоль, и X-ы.

Читать где-то уже поздно, т.к. все, кто может, уже давно мигрировали. На
самом деле процесс достаточно простой:

1) Убедиться в правильности исходной настройки. В частности, переменная
G_FILENAME_ENCODING должна быть установлена в значение "@locale" (см.
файл /etc/environment или /etc/profile, если это не так - приложения GNOME
уже успели насоздавать русские имена файлов в UTF-8, которые надо
сконвертировать обратно). Итак, команда "yes --help" должна выводить
читаемый русский текст, "ls" должна правильно показывать содержимое
каталогов, и т.п.

2) Переконфигурация консоли

# генерируем UTF-8-локаль и заявляем ее в качестве системной
dpkg-reconfigure locales

# переконфигурируем консоль
dpkg-reconfigure console-cyrillic  # или переходим на console-setup
reboot

3) Переконфигурация иксов

Иксы переконфигурировать не надо, разве что добавить compose:rwin в конец
XkbOptions и тем самым получить возможность ввода странных символов
(например, нажав и отпустив сначала rwin, потом нажав и отпустив O, а затем
C, получим ©).

4) Правка /etc/fstab и других файлов, упоминающих кодировку (типа smb.conf,
неполный список можно получить с помошью команды "grep -ir koi /etc"). Для
fstab:

/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,utf8,noatime 0 0
/dev/sdb1 /media/sdb1 vfat user,noauto,utf8,usefree,showexec,umask=0 0 0

Для smb.conf:

[global]
unix charset = UTF-8
dos charset = CP866

Все флешки прописать в fstab, поскольку корректному монтированию можно
научить только GNOME (KDE4 умеет монтировать только с опциями по умолчанию
и не может быть настроена, то же самое относится к XFCE). Впрочем, у Вас
это, скорее всего, уже сделано.

5) Конвертация имен файлов

aptitude install convmv

и затем натравливаем на свой домашний каталог:

convmv --nosmart -f koi8-r -t utf-8 -r /home/user

6) Конвертация содержимого текстовых файлов

Так как надежно определить, является ли файл текстовым, невозможно, этот шаг
не поддается автоматизации. Для нужных файлов отдать команду:

iconv -f koi8-r -t utf-8 file.txt >file.txt.new ; mv file.txt.new file.txt

То же самое для HTML, TeX и т.п., но у этих файлов следует еще подправить
заголовок.

Как альтернативное решение, можно настроить редактор на понимание старой
кодировки для не-UTF-8 файлов. Например, в ~/.vimrc написать:

set fencs=utf-8,koi8-r

7) [самое главное] Протестировать результат и снести все неработающие
программы, т.к. они все равно не заработают. Рекомендуется также перейти с
WM на DE (т.е. KDE3, GNOME или XFCE). Для возможности работы с другими
системами, которые еще не переведены на UTF-8, желательно поставить
терминал, который умеет переключать кодировку (Konsole или GNOME Terminal)
или, на худой конец, screen.



Reply to: