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

ASCII

ASCII (American Standard Code for Information Interchange, американский стандартный код для обмена информацией) — это таблица кодировки символов, представляющая собой стандарт для представления текстовой информации в цифровых устройствах. ASCII является семибитной кодировкой, что позволяет закодировать 128 различных символов (2⁷ = 128), включая буквы латинского алфавита, цифры, знаки препинания, управляющие символы и пробел. Стандарт был разработан в 1963 году Американской ассоциацией стандартов (ASA, ныне ANSI) и впоследствии принят Международной организацией по стандартизации (ISO) как ISO/IEC 646. ASCII стал основой для большинства современных компьютерных кодировок, включая Unicode.

История

Предпосылки создания

До появления ASCII в компьютерной технике использовались различные проприетарные кодировки, такие как EBCDIC (Extended Binary Coded Decimal Interchange Code) от IBM, а также телеграфные коды (например, код Бодо). Отсутствие единого стандарта приводило к проблемам совместимости при передаче данных между разными системами. В 1960 году ASA начала работу над универсальным кодом для обмена информацией, который мог бы использоваться в телетайпах, компьютерах и других устройствах.

Разработка и стандартизация

Первая версия ASCII была опубликована в 1963 году под названием ASA X3.4-1963. В 1967 году вышла обновлённая версия, в которой были добавлены строчные буквы и некоторые управляющие символы. Окончательная версия стандарта была утверждена в 1968 году как ANSI X3.4-1968. В 1972 году ASCII был принят Международной организацией по стандартизации как ISO 646 (с некоторыми национальными вариациями, например, для букв с диакритическими знаками). В СССР и России аналогом ASCII стал код КОИ-7 (Код Обмена Информацией, 7-битный), разработанный в 1968 году и частично совместимый с ASCII.

Распространение

С развитием персональных компьютеров в 1970–1980-х годах ASCII стал де-факто стандартом для текстовых файлов, протоколов передачи данных (например, Telnet, SMTP) и интерфейсов командной строки. Операционные системы Unix и MS-DOS использовали ASCII как базовую кодировку. С появлением 8-битных компьютеров ASCII был расширен до 256 символов (расширенный ASCII), где вторая половина таблицы (128–255) отводилась под национальные символы (например, кириллицу в кодировке CP866 или Windows-1251) и псевдографику.

Структура таблицы ASCII

Диапазоны символов

Таблица ASCII делится на три основные группы:

  1. Управляющие символы (0–31 и 127) — непечатаемые символы, предназначенные для управления устройствами (телетайпами, терминалами) и протоколами передачи данных. Примеры:
  1. Печатаемые символы (32–126) — видимые символы, включая:
  1. Символ 127 (DEL) — исторически использовался для удаления символа на перфоленте (пробивание всех дырок).

Семибитная природа

ASCII использует 7 бит для кодирования каждого символа, что даёт 128 возможных значений. Восьмой бит (старший) в исходном стандарте не использовался и мог быть нулевым или использоваться для контроля чётности. В расширенных версиях восьмой бит добавлял ещё 128 символов, что позволяло кодировать национальные алфавиты (кириллицу, греческий, арабский) и символы псевдографики.

Применение

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

ASCII является основой для хранения простого текста (plain text) в большинстве операционных систем. Файлы с расширением .txt часто используют ASCII (или его расширения). Протоколы электронной почты (SMTP), передачи файлов (FTP) и веб-серверов (HTTP) изначально были разработаны для работы с ASCII-текстом.

Программирование

Исходный код большинства языков программирования (C, C++, Java, Python, JavaScript) пишется в ASCII-совместимых кодировках. Ключевые слова, операторы и идентификаторы состоят из символов ASCII. Управляющие символы ASCII (например, LF для перевода строки, HT для табуляции) используются для форматирования кода.

Интерфейсы командной строки

Терминалы и эмуляторы терминалов (например, xterm, Windows Terminal) работают с ASCII-символами для отображения текста и управления курсором. Управляющие последовательности (escape-последовательности), начинающиеся с символа ESC, используются для изменения цвета, перемещения курсора и других операций.

Сетевое взаимодействие

Многие сетевые протоколы (Telnet, SSH, HTTP/1.x) передают команды и данные в виде ASCII-строк. Например, HTTP-запросы содержат ASCII-методы (GET, POST) и заголовки.

Расширения ASCII

8-битные кодировки

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

Unicode

Unicode (стандарт ISO/IEC 10646) является универсальной кодировкой, охватывающей все письменности мира. Первые 128 символов Unicode (U+0000–U+007F) полностью совпадают с ASCII. Это обеспечивает обратную совместимость: любой ASCII-текст является корректным Unicode-текстом в кодировках UTF-8, UTF-16 и UTF-32. UTF-8, наиболее распространённая кодировка в интернете, использует один байт для символов ASCII и два–четыре байта для остальных.

Ограничения

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

Источники

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

На главную BFOmetr →