![]() |
![]() |
|
![]() |
![]() |
|
|
||
![]() |
/ Net-культура / < Вы здесь |
Неполный CHARSET Дата публикации: 5 Мая 2003 ![]() ![]() ![]() После выхода статьи "Полный CHARSET" (никогда не знал, как правильно ссылаться на интернет-публикации с продолжением, потому привожу ссылку на третью часть, так как из нее можно прямо перейти на первую и вторую), я получил довольно много откликов, указывающих на разной степени неточности в освещении этого животрепещущего вопроса. Сразу разберемся с некоторыми мелочами. Так, Владимир Геогджаев приводит правильное объяснение того, почему кодировка КОИ-8 при очистке восьмого бита отображается на противоположный регистр соответствующего английского начертания ("Русский" в "rUSSKIJ"), - не для того, чтобы отличить английский текст от русского, как у меня написано, а потому, что при этом она правильно отображается на таблицу КОИ-7, в которой русские буквы (только заглавные) замещают по мере возможности соответствующие английские. Это легко понять, если взглянуть на соответствующие таблицы. Во-вторых, автор пользуется случаем выразить благодарность Аркадию Белоусову (aka Бильбо Ленивчатый) за указание на письмо Игоря Семенюка об истории возникновения кодировки Win1251. Я встречался с упомянутым в статье Петром Квитеком, а также Антоном Чижовым (автором, в частности, знаменитого драйвера "Beta") и Игорем Семенюком, и они подтвердили факт, упомянутый в том самом письме, - при обсуждении (происходило это около 90-91 года) вариантов для Windows про стандартизированную "основную ГОСТ" даже не вспомнили, хотя сам соответствующий вариант расположения русских букв подряд, начиная с колонки B0h, рассматривался. Семенюк даже признался, что если бы он знал про ISO и ГОСТ, то, конечно, голосовал бы за стандарт. Хотя не факт, что в "мелкомягкой" все это учли, так как никто не знает, оказало ли предложение москвичей вообще какое-либо влияние на окончательный вариант 1251 - вполне возможно, что оказало, так как русские буквы все же расположены именно так, как предлагалось. Квитек, кстати, вспоминал, что при русификации DOS "мелкомягкие" долго не уговаривались на "альтернативную", так как она не была стандартизирована, но аргумент насчет полного краха таблиц в англоязычном тексте, оформленном с помощью символов псевдографики, их все таки склонил в пользу СР866. Очевидно, после этого они там разобрались в ситуации с российскими законами и в случае Windows терять время на изучение стандартов уже не стали.
Кодовая таблица 8859-5 в упомянутом ГОСТ Р 34.303-92 носит название КОИ-8 В1 - это чтобы еще больше запутать всех. Последний же раздел этого стандарта (4-й) не переведен с ISO, а является оригинальной нашей разработкой и устанавливает как раз "альтернативную" кодировку, которая там имеется в двух вариантах, различающихся только полнотой представления символов псевдографики и носящих название "наборов однобайтовых символов" КОИ-8 Н1 и КОИ-8 Н2. Цитирую, однако, текст ГОСТа: "4.2. Наборы однобайтовых символов предназначены для применений, использующих единственный набор, включающий в себя 256 однобайтовых символов. Такие наборы предназначены для использования в персональных ЭВМ". Вот так, нас опустили. Оказывается, мы тут все только и занимаемся тем, что используем какие-то примитивные "однобайтовые наборы", в то время, как серьезные дяди в серьезном Госстандарте думают о вечности. Бог их простит... Резюме такое - ни одна из четырех используемых ныне на практике кириллических кодировок, за исключением уходящей в прошлое вместе с DOS СР866, не отражена в существующих стандартах - по крайней мере отечественных. В ISO стандартизировали Unicode под названием ISO 10646. Буду рад, если кто-нибудь расскажет мне, что собираются предпринять в Госстандарте по этому поводу. И в заключение, для ясности, - я не упомянул в своей статье про UTF-8. Так вот, под общим названием Unicode Transformation Format скрываются процедуры, позволяющие редуцировать двухбайтовые Unicode-символы до обычных однобайтовых, например, ASCII. Это не еще какие-то таблицы кодов, а всего лишь способы их трансформации друг в друга! ![]() ![]()
|
![]() |
![]()
revich@homepc.ru ![]() ![]() |
![]() |
||
![]() |
||