Online Documentation Server
 ПОИСК
ods.com.ua Web
 КАТЕГОРИИ
Home
Programming
Net technology
Unixes
Security
RFC, HOWTO
Web technology
Data bases
Other docs

 

 ПОДПИСКА

 О КОПИРАЙТАХ
Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом.




Взаимоотношение MIME и locale.

/* все очень спорно, но вот такое сложилось мнение */

Фактически мы имеем дело с 3-мя различными об'ектами:

  1. текущие фонты и раскладка клавиатуры
  2. установленное значение locale (LANG="...")
  3. кодировка почтового сообщения charset=xxxxx MIME

Само по себе, значение locale ( а точнее значение категорий LC_CTYPE и LC_COLLATE ) оказывает влияние только на обработку символов.

* Средствами locale и стандартного *nix ввода/вывода никак нельзя ни повлиять, ни даже спросить текущее значение аппаратной конфигурации (кодировки). Стандартных средств изменения и определения кодировки нет ни для "аппаратных" (подключенных через ASYNC порт) терминалов , ни для эмуляторов консоли (SCO, BSD или LINUX console), ни для окна xterm в X-Windows. Понятий "кодировка" или "набор символов" нет ни в termios, ни в базах описания терминалов termcap и terminfo, ни даже в "высокоуровневых" библиотеках управления терминалом curses и ncurses.

С другой стороны, почтовые сообщения в MIME могут содержать различные charset даже в пределах одного сообщения.

Задача почтовой программы -- правильно отобразить различные charset для text/plain и text/html. Это легко сделать в оконных системах (Windows, X-Windows, e.t.c.) но невозможно для стандартного *nix терминального ввода/вывода.

В наиболее старой и известной программе для работы с MIME - metamail(1) (ftp://ftp.funet.fi/pub/unix/mail/metamail/) впервые столкнулись с данной проблемой. Именно для metamail была впервые введена переменная окружения MM_CHARSET которая задавала "текущий" charset (набор символов) на консоли. Предполагалось, что пользователь его знает. Постепенно эта переменная стала трактоваться как обозначение текущей аппаратного окружения ( фонтов, e.t.c. ) и современные почтовые программы ( mh, elm ) активно используют эту переменную.

 

* Буду чрезвычайно благодарен за дополнения и исправление ошибок mailto:alec@sensi.org (26-SEP-1997)



With any suggestions or questions please feel free to contact us