Как следствие, жители стран Юго-Восточной Азии, за которых американские корпорации пытаются решить, какие символы им «разрешается» использовать в компьютерной технике, а какие – «запрещается», уже в течение нескольких лет борются с системой Unicode. Она совершенно не соответствует самым первоочерёдным требованиям, предъявляемым к ней в этих странах, – вопреки рекламным заявлениям корпораций-членов консорциума.
***
Уместно рассмотреть теперь, какие агрессивные шаги предпринимают корпорации для утверждения Unicode в качестве международного стандарта.
В начале 1990-х в ISO для решения проблемы кодировок рассматривалась другая, более совершенная чем Unicode, система кодирования символов – UCS (Universal Coded Character Set). Объём её таблицы символов составляет примерно 4,3 миллиарда символов (а точнее, 2^32=4294967296). Эта таблица разбита на 65536 «внутренних» таблиц по 65536 символов каждая, и разбивка этих «внутренних» таблиц (256x256 рядов) совпадает с разбивкой таблицы, используемой в системе Unicode. Для переключения между «внутренними» таблица ми в UCS предлагалось использовать управляющие последовательности.
Система UCS была описана в «черновике» ISO DIS-10646.1:1990, подготовленном ISO/IEC JTC1/SC02/WG02. Её поддержали европейские и японские исследователи. Однако американские корпорации UCS не устраивала. А поскольку ISO, как она сама указывает в своих документах, «выпускает только те стандарты, которые нужны рынку», а также потому, что многие нанимаемые ISO «эксперты» – это работники американских компьютерных корпораций, то неудивительно, что вскоре черновик ISO DIS-10646.1:1990 тихо прекратил своё существование.
«Зато» появился – уже в качестве не черновика, а стандарта – документ ISO/IEC 10646 Version 2, позднее названный ISO/IEC 10646-1: 1993. Он был обозначен как «ISO/IEC 10646 Universal Multiple-Octet Coded Character Set (UCS) – Part 1: Architecture and Basic Multilingual Plane», и в качестве его базовой таблицы символов (т.е. первой из «внутренних» 65536-символьных таблиц) была утверждена… правильно, таблица системы Unicode, со всеми вытекающими отсюда последствиями.
Заметим, что по мере изменения и пополнения таблицы символов системы Unicode и выхода новых версий этой системы – а эта работа ведётся постоянно, поскольку изначально система Unicode была представлена в ISO в недоработанном виде – выходят и новые документы ISO. Система Unicode существует в общей сложности в следующих версиях: 1.1 (соответствует стандарту ISO/IEC 10646-1: 1993), 2.0, 2.1 (тот же стандарт ISO/IEC 10646-1: 1993 плюс дополнения: «Amendments» с 1-го по 7-е и «Technical Corrigenda» 1 и 2), 3.0 (стандарт ISO/IEC 10646-1:2000). В начале 2002-го года планируется выход Unicode 3.2, а в 2003-м – Unicode 4.0.
Кстати, работа по «унификации» иероглифов для таблицы символов Unicode сейчас ведётся тоже не консорциумом Unicode, а ISO – специальным комитетом IRG при JTC1/SC02/WG02. И это при том, что в оригинальной версии UCS (в черновике ISO DIS-10646.1:1990) было чётко определено, что «базовая» (первая «внутренняя») таблица вообще не предназначена для иероглифов. При этом работа по «унификации» продолжается до сих пор, хотя в одной из более поздних версий системы Unicode было объявлено, что таблица символов будет расширена до примерно 1000000 позиций (с помощью использования специальных «расширений», которые в первоначальной версии Unicode не планировались – см. выше).
В дополнение к всему уже сказанному об Unicode нужно отметить ещё некоторые обстоятельства. Для того, чтобы сделать её хотя бы частично совместимой с ранее существовавшим ПО (а возможно, и чтобы не тратить денег на серьёзную переделку своего ПО, находящегося в стадии разработки), членами консорциума были разработаны различные методы представления (номеров) символов таблицы Unicode: UTF-8, UTF16, UTF16LE и UTF16BE. Отсюда возникает необходимость в реализации в ПО поддержки каждого из них, что определённо порождает новый виток путаницы. С этим обстоятельством связано, вероятно, большинство проблем, существующих в конкретных реализациях поддержки работы с системой кодирования Unicode в различном ПО.
Отметим, что консорциум Unicode держит «про запас» методы UTF32, UTF32LE, UTF32BE, в которых для кодирования (номера) каждого символа предусматривается использование уже 32-битных последовательностей (что, однако, «автоматически» не означает, что таблица символов будет расширена до 4,3 миллиардов позиций). Однако их применение чрезвычайно расточительно с точки зрения расходования системных ресурсов, и представители Unicode прямо указывают, что в ближайшее время промышленность (читай – корпорации-члены Unicode) не планирует переходить на применение этих методов.
У системы Unicode есть и другие нерешённые проблемы, наличие которых для международного стандарта просто неприлично, но мы не будем на них останавливаться отдельно. Интересующиеся могут ознакомиться с этой информацией на web-сайте проекта TRON[9].
***
Зададимся теперь вопросом: почему же всё-таки не возник единый международный стандарт, в таблице символов которого были бы последовательно занесены символы всех существующих естественных языков[10], притом одинаково удобный для применения во всех странах мира? Почему, напротив, в качестве международных принимались и принимаются заведомо несовершенные стандарты, часто недоработанные, и появилось большое количество несовместимых таблиц символов? Попробуем оценить основные причины.
1. корпорациям-производителям ПО, очевидно, весьма выгодно продавать разные «национальные» версии операционных систем, офисных пакетов и т.д. за отдельные деньги. Так, Microsoft продавала «американскую», «панъевропейскую», «восточно-азиатскую», « ближневосточную» и «тайскую» версии Windows 95, а IBM – стандартную, «арабскую», «израильскую», «японскую», «корейскую», «китайскую» и «тайваньскую» версии PC DOS. Отсюда возникновение несовместимых таблиц символов, содержащих 256 позиций каждая.
Кроме того, как уже говорилось, это, очевидно, позволило корпорациям в дальнейшем нажиться на продажах ПО, соответствующего стандарту Unicode – кому оно было бы нужно, не существуй «проблема кодировок»?! – а также на продаже самогО текста этого стандарта.
2. поскольку «проблема кодировок» теперь не касается английского языка, у ANSI и правительства США не было повода вмешиваться в её решение, как это было в 1963-м.
Более того, «проблема кодировок», не касающаяся английского языка, стратегически выгодна для США. Она обеспечивает лидерство США и его крупнейшего англоязычного партнёра по НАТО – Великобритании (и Австралии) – в сфере ИТ, и отставание других стран, так как «проблема кодировок» препятствует информационному обмену между людьми, работающими с данными не на английском языке.
Особенно это заметно на примере важнейшей сферы ИТ, относящейся к сети Internet:
– использование для представления различных символов различных языков одних и тех же двоичных последовательностей (при этом «угадать», которую из таблиц символов нужно использовать, ПО без дополнительных данных не может) делает их употребление в именах файлов[11] и Internet-ресурсов если не невозможным, то, как минимум, нефункциональным и потому нежелательным. Символам английского языка, напротив, всегда «горит зелёный свет»;
– существование «проблемы кодировок» препятствует навигации по не англоязычным текстовым материалам в сети Internet, так как оно значительно увеличивает требования к вычислительным мощностям и программному обеспечению компьютерных систем, на базе которых строятся поисковые серверы Internet. Кроме того, заметим, что на важнейшей – начальной – стадии развития Internet, когда на серверы выкладывались данные, ни клиентского, ни серверного ПО, которое позволяло бы удовлетворительным образом решить «проблему кодировок», практически не было. Тем, кто не согласен, предлагаю вспомнить, сколько таблиц символов и с каким качеством «понимали» ранние версии, ну, хотя бы www-броузеров Netscape Navigator и Internet Explorer… Поэтому можно с полной ответственностью заявить, что это воспрепятствовало равноправному участию всех стран в построении международного информационного пространства. «Проблема кодировок» не дала шансов вырваться в этой важнейшей области ИТ в лидеры ни одной из не англоязычных стран, так как не позволила своевременно разместить в сети Internet их национальное культурное достояние и обеспечить его общедоступность;