[devel] mova

Ivan Zakharyaschev =?iso-8859-1?q?vanyaz_=CE=C1_mccme=2Eru?=
Сб Ноя 18 21:11:54 MSK 2000


	Здравствуйте!

On Sat, 18 Nov 2000, Dmitry V. Levin wrote:

> легко научить перекодировать в любую кодировку, поддерживаемую glibc,
> используя простой фильтр: iconv -f koi8-r -t `locale charmap`

А имена у charmap'ов всегда совпадают с названиями кодировок, известными
glibc? Это хорошо, а то бы три разных похожих вещи получилось: charmap для
консольных шрифтов, таблицы кодировок glibc и charset для документов (по
какому-то стандарту для email и www: IANA). А так только две. Меня
интересует, есть ли какой-нибудь инструмент для перехода от charset
документа к charmap терминала, т.е. способ узнать, способен ли терминал с
текущим charmap нормально отображать документ в заданной charset, а также
какая charset должна быть указана в документе, набранном на этом
терминале (или набор возможых charset)? Пока многие консольные программы
пытаются сами решать проблемы, связанные с этим: pine, Mutt, lynx, links,
mc. В lynx'е даже появилась экпериментальная "фича": вместо того, чтобы
перекодировать документ так, чтобы его можно было показать, изменить
charmap консоли (загрузить другой консольный шрифт).

Самое примитивное решение у pine: срашивать у пользователя, какую document
charset может показывать его терминал, и предупреждать, когда кодировка
документа не соответсвует ей.

Более продвинутое: спрашивать у пользователя, какую document charset
показывает терминал, основываясь на этом, перекодировать в нее документ,
если нужно. Также предоставить пользователю возможность перейти в raw
mode. При таком решении в программе нужно либо хранить таблицы
перекодировок между document charsets, либо хранить таблицы соответсвия
названий document chasret и "системных кодировок" (известных glibc) и
пользоваться системными функциями для перекодировки.

Еще более продвинутое: определять по charmap, какие документы можно
показывать, перекодировать, если нужно. Есть два варианта: при
перекодировке основываться на именах document charsets или системных
кодировок. Здесь программа должна знать все то же, что и в предыдущем
решении, плюс соответсвия межды document charsets и charmap'ами. Если
charmap'ы и системные кодировки совпадают, то одной проблемой меньше.

Можно было бы как-нибудь сделать единый инструмент/базу данных для
совершения таких преобразований, которым все консольные программы,
показывающие документы, могли бы пользоваться.

-- 
Best regards,
      Ivan Z.



_______________________________________________
Devel mailing list
Devel на linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel



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