Открыть сервис

ASCII кодирование

ASCII (American Standard Code for Information Interchange, американский стандартный код для обмена информацией) — одна из первых и наиболее распространённых систем кодирования символов в цифровых устройствах, предназначенная для представления текстовой информации с помощью 7-битных или 8-битных комбинаций двоичного кода. ASCII позволяет кодировать 128 (в 7-битной версии) или 256 (в расширенной 8-битной) символов, включая прописные и строчные латинские буквы, цифры, знаки препинания, управляющие символы и ряд дополнительных символов.

История

Разработка и утверждение

ASCII был разработан в 1963 году Американским национальным институтом стандартов (ANSI) на основе предшествующих телеграфных кодов (например, кода Бодо и FIELDATA). Целью создания было обеспечить универсальную совместимость между различными моделями компьютеров и телетайпов, производимых разными компаниями. Первоначально был принят 7-битный код, позволяющий закодировать 128 символов. В 1967 году стандарт был доработан, а в 1968 году опубликован под обозначением ANSI X3.4-1968. В 1970-х годах ASCII стал широко внедряться в операционных системах Unix, терминалах и персональных компьютерах.

Распространение и конкуренты

До появления ASCII существовало множество несовместимых кодировок, таких как EBCDIC (IBM), которые использовали 8-битные символы, но с разными кодовыми таблицами. Успех ASCII объяснялся его простотой, открытостью и универсальностью. Однако изначальный стандарт не включал символы национальных алфавитов (русского, греческого, арабского и т.д.), что привело к появлению расширенного ASCII — 8-битных надстроек (например, CP866, Windows-1251 для кириллицы). К началу 1990-х годов ASCII стал основой для большинства компьютерных систем, а его 7-битная часть была заимствована в последующие стандарты (например, ISO/IEC 8859, Unicode).

Структура и кодирование

7-битная таблица ASCII

В 7-битном представлении каждый символ кодируется семью битами, что даёт 2^7 = 128 возможных кодовых значений от 0 до 127. Таблица делится на две части:

Пример кодирования

Расширенный ASCII (8-битный)

Для кодирования дополнительных символов (например, букв кириллицы, немецких умлаутов, псевдографики) стали использовать 8-битные кодировки, где старший бит (128–255) отведён под национальные символы. Примеры:

При чтении текста, созданного в одной 8-битной кодировке, на устройстве с другой кодировкой символы отображаются некорректно («кракозябры»). Эта проблема решена введением Unicode.

Классификация символов

Управляющие символы (коды 0–31, 127)

Печатные символы (коды 32–126)

Применение

Текстовые протоколы и интерфейсы

ASCII лёг в основу многих сетевых протоколов: HTTP, SMTP, FTP (команды передаются в виде ASCII-строк). Терминалы и эмуляторы терминала (VT100, xterm) использовали ASCII для передачи управляющих последовательностей (escape-последовательности). Даже в современных системах ASCII остаётся базовым форматом для конфигурационных файлов (.ini, .conf), скриптов (bash, Python), исходного кода (C, Java) и электронной почты (заголовки писем).

ASCII-арт

На основе печатных символов ASCII сложилась традиция создания графических изображений — «ASCII-арта». Изображения составляются из букв, цифр, знаков препинания и пробелов, отображаемых моноширинным шрифтом. Этот жанр был популярен в период BBS и раннего интернета, а также в качестве подписей в электронных письмах (например, смайлик :-) ).

Кодирование обмена данными

ASCII используется в форматах данных, где требуется человекочитаемость: JSON (содержит управляющие символы и печатные символы), XML, YAML. В системах управления версиями (Git) строки в файлах сравниваются как ASCII-последовательности, если не указана другая кодировка.

Управление устройствами

Управляющие символы ASCII применяются в принтерах, терминалах, телетайпах и модемах. Например, последовательность CR+LF (0x0D 0x0A) используется для перехода на новую строку в текстовых файлах Windows (в Unix только LF).

Значение и критика

Достоинства

Недостатки

Влияние на Unicode

С появлением Unicode (1990-е) проблема несовместимости кодировок была решена путём включения всех символов мира в единую таблицу, где первые 128 кодов полностью совпадают с ASCII. UTF-8 — наиболее распространённая реализация Unicode — сохраняет обратную совместимость с ASCII: любой ASCII-файл является корректным UTF-8-файлом. Таким образом, ASCII продолжает существовать как подмножество Unicode.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →