[Comm] кодировка man-страниц

Андрей Черепанов =?iso-8859-1?q?cas_=CE=C1_altlinux=2Eru?=
Вт Авг 12 14:07:03 MSD 2008


12 августа 2008 Dmitry Chistikov написал:
> Доброго дня!
>
> Наткнулся на проблему с кодировками в man-страницах. Во многих из них
> (возьму для примера basename(1)) используется знак копирайта
> (copyright sign). Когда эти страницы, однако, используются программой
> man(1), они выводятся как latin1-текст (без преобразования в utf8),
> что вызывает некорректное отображение copyright sign в less и
> серьезные неудобства при обработке:
>
> $ man basename | grep Copyright
>        Copyright � 2006 Free Software Foundation, Inc.
> $ man basename | grep Copyright | wc
> wc: стандартный ввод:1: Неверный или неполный мультибайтный или широкий
> знак 1       6      55
> $ man basename | grep Copyright | col -b
>        Copyright
> $
>
> Перекодировка в utf8, разумеется, помогает:
>
> $ man basename | grep Copyright | iconv -f latin1 -t utf8
>        Copyright (c) 2006 Free Software Foundation, Inc.
> $ man basename | grep Copyright | iconv -f latin1 -t utf8 | wc
>       1       7      56
> $ man basename | grep Copyright | iconv -f latin1 -t utf8 | col -b
>        Copyright (c) 2006 Free Software Foundation, Inc.
> $
>
> В /etc/man.conf по этому поводу написано следующее:
>
> # For use with utf-8, NROFF should be "nroff -mandoc" without -T option.
> # (Maybe - but today I need -Tlatin1 to prevent double conversion to utf8.)
>
> Если выкинуть -Tlatin1:
>
> $ diff /etc/man.conf.orig /etc/man.conf
> 98c98
> < NROFF         /usr/bin/nroff -Tlatin1 -mandoc
> ---
>
> > NROFF         /usr/bin/nroff -mandoc
>
> $
>
> - то проблема действительно исчезает:
>
> $ man basename | grep Copyright
>        Copyright (c) 2006 Free Software Foundation, Inc.
> $ man basename | grep Copyright | wc
>       1       7      56
> $ man basename | grep Copyright | col -b
>        Copyright (c) 2006 Free Software Foundation, Inc.
> $
>
> Однако такой ход приводит к проблемам с русскими manpages, которые,
> насколько я понимаю, хранятся в koi8r (пример - vim(1)). В реальности
> я русские manpages не использую (так что приведенная правка
> /etc/man.conf мне подходит), но это, по-видимому, подход неправильный.
> Возможно (задаюсь вопросом после прочтения #9364), стоит все же
> переводить man'ы на utf8? Или я не замечаю иного, более правильного
> решения?
Повешайте багу на man-pages-ru. Сам мучился без кавычек-ёлочек и длинного тире 
при переводе.

-- 
Андрей Черепанов
ALT Linux
cas на altlinux.ru


Подробная информация о списке рассылки community