|
Взаимоотношение MIME и locale./* все очень спорно, но вот такое сложилось мнение */ Фактически мы имеем дело с 3-мя различными об'ектами:
Само по себе, значение 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 |