„Проблема кодировок“: стечение обстоятельств или стратегический замысел? - страница 2

стр.

«У нас существовало более 60 различных систем, использовавшихся для кодирования символов естественных языков в компьютерах. Это было самое настоящее „вавилонское столпотворение“»[1] — констатировал в интервью американскому журналу «ComputerWorld» Боб Бемер (Bob Bemer), с 1956-го по 1962-й годы — работник корпорации IBM и один из главных разработчиков системы ASCII, которая в 1963-м году была принята ANSI в качестве государственного стандарта США на кодирование символов естественных языков в машинно-читаемом виде. При этом принята она была в недоработанном виде; окончательная версия системы ASCII была утверждена в 1968-м году.

Заметим, что корпорация IBM — бесспорный лидер в производстве компьютерной техники в 1960-х — 1970-х гг. — тем не менее без каких-либо последствий для себя нарушала государственный стандарт ASCII на протяжении многих лет после его официального принятия (вплоть до августа 1981-го года, когда она выпустила первые компьютеры серии PC). IBM использовала в своих «мэйнфреймах» System/360, которые впервые поступили в продажу в 1964-м году, свою собственную, несовместимую с ASCII, патентованную систему кодирования символов — EBCDIC, — которая существовала в 57 различных версиях, в том числе «национальных». При этом получить от IBM документацию по версиям EBCDIC было чрезвычайно сложно.

В 1967-м году ISO[2] выпускает рекомендацию ISO 646, которая фактически сделала систему ASCII уже международным стандартом. И это при том, что система ASCII заведомо не удовлетворяла самым очевидным требованиям, предъявляемым к системе кодирования символов, пригодной для международного применения.

Как известно, количество одних только ныне используемых естественных языков, используемых в мире, превышает 2500. Общее количество символов, используемых только в одном из них — японском, к примеру, — превышает 65000.

В системе ASCII же для кодирования каждого символа использовалось 7 бит, а её таблица символов содержала 128 позиций (из которых 32 были отведены под управляющие последовательности, а собственно под символы было отведено, соответственно, 96). Среди этих 96 позиций 52 были уже забронированы за заглавными и строчными буквами английского алфавита, 10 — за арабскими цифрами, прочие — за различными знаками препинания и специальными символами. Для изображения символов и букв «всех прочих» национальных языков, кроме английского, ISO определила в этой таблице «открытые позиции», общим количеством… 10 штук.

Чтобы обеспечить «поддержку» работы с другими языками, кроме английского — не «работу», а именно «поддержку», рассматриваемую ISO, таким образом, как нечто опциональное! — предлагалось использовать технические ухищрения — управляющие последовательности (escape-последовательности). После того, как компьютер встречал в тексте специальную управляющую последовательность, считалось, что произошла смена стандартной таблицы символов, используемой в ASCII, на одну из «дополнительных», содержащую символы того или иного «дополнительного» языка. Таких «дополнительных» таблиц ISO было утверждено в общей сложности более 180!

***

Затем систему кодирования ASCII пересмотрели, и для кодирования каждого символа стали использовать не 7, а 8 бит (этот 8-й бит существовал и ранее, но использовался не для представления данных, а для осуществления контроля чётности). Заметим, что в тексте стандарта ASCII такое «расширение» никак не регламентировано. Это привело к многочисленным проблемам, так как существующее на тот момент ПО работало с ASCII в его оригинальном виде[3].

Объём таблицы символов возрос до 256 позиций. Это позволяло отказаться от использования управляющих последовательностей для обеспечения работы с некоторыми языками, символы которых можно было уместить в появившееся место[4]. ISO выпускает стандарты ISO 2022 и серию стандартов ISO 8859-X (X — цифра от 1 до 15), описывающие, как следует задействовать новую возможность.

Серия стандартов ISO 8859-X по заказу ISO разрабатывалась с середины 1980-х гг. ассоциацией крупнейших европейских производителей компьютерной техники (ECMA, European Computer Manufacturer's Association). В каждом из этих стандартов были определены 15 разных таблиц символов, каждая из которых содержала 256 позиций.