ASCII

ASCII (англ. American Standard Code for Information Interchange) — стандарт кодирования букв латинского алфавита, цифр, знаков препинания, некоторых специальных знаков и управляющих символов, принятый в 1963 году Американской ассоциацией стандартов как основной способ представления текстовых данных для хранения и обработки в компьютере.

Во избежание путаницы с национальными вариантами кодировок ASCII, используемыми в других странах, IANA рекомендует обозначать оригинальный вариант  кода, использующий исключительно английский язык как US-ASCI.

Стандарт ASCII представляет собой 7-битный код без рекомендаций относительно контроля чётности, содержащий 27 = 128 кодовых позиций, в которых размещены следующие символы:

  • десятичные цифры;
  • латинские буквы;
  • знаки препинания;
  • орфографические знаки;
  • диакритические знаки;
  • математические символы;
  • управляющие символы.

Работа по созданию ASCII началась 6 октября 1960 года, и 17 июня 1963 года, почти 3 года спустя, была опубликована его первая редакция (ASA X3.4—1963). В ней отсутствовали строчные буквы, а область из 28 кодовых позиций 0x60—0x7B была зарезервирована для дальнейшего использования. Велись споры о том, как использовать эту область — для добавления строчных букв или же управляющих символов.

В 1965 году была подготовлена новая редакция ASCII (ASA X3.4—1965), которая, однако, так и не была опубликована и не использовалась нигде, кроме терминалов IBM 2260/2848 и принтеров IBM 1053 (да и то без строчных букв и некоторых других символов). Следующая редакция ASCII (USAS X3.4—1967) была опубликована 5 июля 1967 года и определила окончательную кодовую таблицу. Новые редакции ASCII продолжили выходить и далее (USAS X3.4—1968, ANSI X3.4—1977, ANSI X3.4—1986 и т. д.), однако кодовую таблицу изменения в них более не затрагивали.

В целом, внедрение ASCII очень долгое время саботировалось компанией IBM, отдававшей предпочтение собственной кодировке EBCDIC, применявшейся, в частности в ЭВМ серий IBM S/390 и IBM As400, являющейся дальнейшим развитием кодировки BCDIC, также созданной IBM и основанной, в свою очередь, на коде Холлерита.

Возможность адаптации ASCII под нужды других стран предусмотрена сразу в трёх тесно взаимосвязанных стандартах — ISO 646 Международной организации по стандартизации (ныне — ISO/IEC 646), ECMA-6 Европейской ассоциации производителей компьютеров и рекомендации V.3 (Международный алфавит № 5) Международного консультативного комитета по телеграфии и телефонии (ныне — рекомендация T.50 (Международный справочный алфавит) Сектора стандартизации электросвязи МСЭ). Для этого предлагается заменять символы @[\]^`{|} и ~ на национальные. Также допускается замена знака решётки (#) на знак фунта (£), а знака доллара ($) — на знак валюты (¤). Унифицированный вариант кода, не содержащий национальные символы, при этом обозначается как IRV (сокр. от англ. international reference version — «международная ссылочная версия»). ISO 646 IRV был утверждён в Советском Союзе как КОИ-7 Н0 в ГОСТ 13052 (ныне — ГОСТ 27463).

Для некоторых языков с нелатинской письменностью (русского, греческого, арабского, и др.) существовали и более радикальные модификации ASCII:

  • в одних на месте строчных латинских букв размещались национальные символы (для русского (КОИ-7 Н2) и греческого вариантов — заглавные буквы);
  • в других предусматривалось переключение между ASCII (ISO 646 IRV) и национальным вариантом кода «на лету» с помощью символов SO и SI; в этом случае в национальном варианте можно было полностью заменить латинские буквы на национальные символы (как, например, в КОИ-7 Н1).

Со временем стали появляться производные 8-битные кодировки (кодовые страницы), содержащие 28 = 256 кодовых позиций, в которых нижняя половина кодовой таблицы (позиции 0x00—0x7F), как правило, полностью совпадает с ASCII, а верхняя (позиции 0x80—0xFF) служит для размещения дополнительных, в том числе национальных, символов. Подобные ASCII-совместимые кодировки, получившие неофициальное собирательное название «расширенный ASCII», оказались удобнее упомянутых ранее 7-битных вариантов и широко использовались вплоть до начала повсеместного внедрения Unicode. Впрочем, отсутствие единого подхода к размещению национальных символов в их кодовых таблицах (например, кириллицы в ISO/IEC 8859-5, KOI8-R, Windows-1251 и т. д.) порождало множество проблем. Так, например, когда почтовые клиенты отправителя и получателя использовали различные кодировки для интерпретации текста письма, тот (за исключением символов ASCII) становился нечитаемым (превращался в так называемые кракозябры).

Обсуждение закрыто.