«Проблема кодировок»: стечение обстоятельств или стратегический замысел?
В данном материале будет рассказано об одной из наиболее обсуждаемых как среди специалистов в области ИТ, так среди и рядовых пользователей компьютерной техники, тем — о проблеме представления (кодирования) символов естественных языков в машинно-читаемом виде. В кругах ИТ-общественности она получила название «проблемы кодировок».
Эта проблема состоит в том, что для решения задачи кодирования символов естественных языков в машинно-читаемом виде было предложено и принято множество стандартов, в том числе международных, которые несовместимы между собой и противоречат друг другу. В результате, как несложно догадаться, при работе с компьютерной техникой возникают многочисленные проблемы при обработке текстовой информации на ряде языков. Эти проблемы в значительной степени препятствуют и свободному обмену такой информацией, в том числе через сеть Internet.
В современном мире сложилась ситуация, когда положение той или иной страны в мировом сообществе напрямую зависит от того, какое положение она занимает в мировой сфере ИТ. И понятно, что поскольку участие страны в существующей мировой сфере ИТ в огромной степени определяется тем, как в этой сфере реализована поддержка работы с информацией на национальном языке, на котором говорит народ этой страны, «проблема кодировок» является чрезвычайно, даже стратегически, важной, как будет показано ниже.
К сожалению, в подавляющем большинстве материалов на тему «проблемы кодировок» их авторы (как русские, так и зарубежные) погружаются исключительно в одну тему — в описание многочисленных технических «внутренностей» различных стандартов, из-за которых при работе с тем или иным языком возникают проблемы. Если даже они и предлагают свои собственные варианты решения данной проблемы, то делают это, «не видя за деревьями леса» и не поднимая ряда нетехнических вопросов, которые имеют более глобальный характер. В результате ничего не меняется — несовместимые стандарты лишь продолжают множиться, и «проблема кодировок» остаётся нерешённой.
Для того, чтобы на практике приблизиться к решению «проблемы кодировок», нужно иметь представление о том,
• каким образом она возникла;
• кто её создал и продолжает поддерживать;
• кто несёт от неё наибольший ущерб, а кто — выигрывает.
Собственно, рассмотрению этих вопросов и посвящена статья.
К началу 1960-х годов мировая сфера производства компьютерной техники контролировалась рядом крупнейших транснациональных корпораций, головные отделения которых располагались, преимущественно, в одной стране — США. И сложилась ситуация, когда каждая корпорация в своих устройствах предлагала свою собственную систему для кодирования символов естественных языков, несовместимую с таковой системой конкурентов. Каждая корпорация таким образом хотела заставить покупателей приобретать исключительно свою «линейку оборудования», в рамках которой совместимость различных устройств была обеспечена.
Подобная ситуация не устраивала покупателей компьютерной техники и шла вразрез с национальными интересами США — ведь буквы английского языка в каждой из указанных систем кодировались по-своему, и это тормозило развитие национальной сферы ИТ в США. Поэтому американскому национальному стандартизирующему органу — ASA (позднее — ANSI) — была поставлена задача решить проблему путём разработки единого государственного стандарта на систему кодирования символов естественных языков в машинно-читаемом виде.
Был организован специальный комитет (X3.4 Committee), для работы в котором были приглашены представители крупнейших корпораций-производителей компьютерной техники. Некоторые согласились принять участие в этой работе, поскольку на тот момент путаница в области систем кодирования достигла такой степени, что, очевидно, стала причинять проблемы уже и им самим. Ведь речь шла уже о том, что из-за использования разных систем кодирования символов стал невозможен обмен информацией даже между двумя компьютерами, произведёнными одной и той же корпорацией, но принадлежащих к разным «линейкам» или семействам.
«У нас существовало более 60 различных систем, использовавшихся для кодирования символов естественных языков в компьютерах. Это было самое настоящее „вавилонское столпотворение“»[1] — констатировал в интервью американскому журналу «ComputerWorld» Боб Бемер (Bob Bemer), с 1956-го по 1962-й годы — работник корпорации IBM и один из главных разработчиков системы ASCII, которая в 1963-м году была принята ANSI в качестве государственного стандарта США на кодирование символов естественных языков в машинно-читаемом виде. При этом принята она была в недоработанном виде; окончательная версия системы ASCII была утверждена в 1968-м году.