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

Re: X'ы, "ескейп-секвесы" и ISO-IR-111



From: Ivan Pascal <pascal@info.tsu.ru>


 Я не разбирался очень подробно, но имею вот такую точку зрения.

>  Так вот. На самом деле это - "KOI8 де-юре". Напомню, что распространенный
>koi8-r (Relcom's koi8-r) стандартом не является. Тот RFC1489, на который
>обычно ссылаются не более чем "мемо", а вовсе не стандарт.


 Как бы то ни было, charset *именно* с таким именем (koi8-r)
зарегистрирован в IANA и определен его mapping на UNICODE.
И огромное количество софта (на множестве других платформ)
его поддерживает.

 Другое дело, что если софт вообще в принципе "charset-aware",
то есть понимает аттрибут текста : text/plain; charset="xxxxxx"
и text/html; charset="xxxxxx" то ему совершенно не сложно
поддерживать _любой_ любой другой charset. Для этого необходимы
две вещи :

1) Чтобы _имя_ charset-a было "зарегистрировано" и
    "широко известно" (также неплохо бы поддерживать alias-ы
    имен charset-ов
2) Чтобы был известен mapping этого charset-a на UNICODE.

 Я к чему клоню ? Что в настоящее время постепенно
складыватся практика ссылаться на charset-ы ПО ИМЕНИ
(как string). Например в заголовках MIME :
Subject: Re: =?KOI8-R?Q?=C1?=

>  Отличия между IR-111 и koi8-r конечно есть.
>В кои8 добавлена "псевдографика", зато IR-111 имеет недостающие буквы
>других кирилличских алфавитов (Украинского, Белорусского, Болгарского и
т.п.).
>  К сожалению, в нем отсутствует "GHE WITH UPTURN", но она и так выпадает
>из всех стандартов.


 Ну, спорить за charset-ы совершенно гиблое дело... Мне вот Windows-1251
если честно признаться, вполне симпатичен. ;-) Порутчики, молчать! :-)
Но это все совершенно _разные_ charset-ы. И соответственно, если
ты хочешь породить *новый* charset, ты должен a) сделать mapping
его в UNICODE б) заригистрировать его в IANA. Некий обзор состояния
дел дан у меня :
http://www.sensi.org/~alec/locale/other/charsets.html

 Да, koi8-r в чем-то убогий (например нет EURO CURRENCY e.t.c.).
Но он уже определен. И давайте его не будем трогать.Если
уж очень хочется - RFC-2278 в руки и вперед ! ;-)

>  С другой стороны, то, что мы сейчас имеем в "иксах" под названием koi8-r,
>не является ни Relcom's KOI8-R (поскольку в нем отсутствут псевдографика,
>как в "фонтах", так и в раскладке клавитатуры), ни IR-111 (поскольку
>содержит только буквы русского алфавита).
>  Таким образом, "иксовый" koi8-r ("r" очевидно означает - restricted :-)
>с одинаковым успехом можно считать как подмножеством Relcom's koi8-r,
>так и IR-111.


 Видишь ли какое дело. В charset-е koi8-r пределено много символов,
которые ни isalpha(), ни isdigit(), ни рыба ни мясо. ;-) Единственное, что
про
них можно сказать, что они isgraph() и isprint(). Это все BOX, BLOCK e.t.c.
Естественно, раз они не буквы то по-видимому их не пропустит
X[mb|wc|]LookupString. Или пропустит ?

>  Как я уже заметил, ISO-IR-111 является действительно неким стандартом
>и ему уже выделена законная escape sequence - 033-@.
>
>  Спрашивается - какая "добрая душа" воткнула в "иксы" esc-sequence
>\033%/1\200\210koi8-r\002 ?
>(к тому же неправильную, должно быть ...\200\211...)


 "Воткнул", IMHO ache. А насчет esc-seq то "из общих соображений"
та, где явно содержится ИМЯ charset IMHO лучше. См. соображения
выше. Опять же, такая схема расширяема (для новых charset-ов).


 [Про X пока skip, подумаю и отвечу позднее].

--
-=AV=-