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

Расширенный ASCII

Расширенный ASCII (англ. Extended ASCII) — это общее название для различных 8-битных кодировок символов, которые являются надстройкой над стандартной 7-битной кодировкой ASCII (American Standard Code for Information Interchange). В отличие от базового ASCII, который определяет 128 символов (коды от 0 до 127), расширенный ASCII использует все 256 возможных значений одного байта (коды от 0 до 255), добавляя к стандартному набору ещё 128 символов (коды от 128 до 255). Не существует единого стандарта расширенного ASCII; под этим термином понимается множество несовместимых друг с другом кодировок, разработанных разными производителями и для разных языков.

История

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

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

Развитие в 1970–1980-х годах

Первые 8-битные кодировки появились в конце 1970-х годов. Компания IBM сыграла ключевую роль, разработав кодовые страницы (code pages) для своих мэйнфреймов и персональных компьютеров. Наиболее известной стала IBM CP437 (OEM-кодировка), использовавшаяся в IBM PC и MS-DOS. Она включала символы псевдографики для построения интерфейсов в текстовом режиме, математические символы и буквы некоторых европейских языков. Параллельно развивались кодировки для конкретных языков: например, KOI-8 для кириллицы (разработана в СССР) и различные варианты Latin для западноевропейских языков.

Стандартизация и эпоха Windows

В 1980-х годах Американский национальный институт стандартов (ANSI) предпринял попытку стандартизировать расширенные кодировки, что привело к появлению семейства Windows-125x. Наиболее распространённые из них:

Эти кодировки стали стандартом де-факто для операционных систем Microsoft Windows в 1990-х годах.

Упадок и переход к Unicode

С ростом глобализации и интернета несовместимость расширенных ASCII-кодировок стала серьёзной проблемой. Документ, созданный в одной кодировке, отображался «кракозябрами» в другой. Решением стало внедрение Unicode — универсальной кодировки, способной представить символы всех письменностей мира. В 1990-х годах Unicode начал вытеснять расширенный ASCII, особенно с появлением UTF-8, который сохранил обратную совместимость с 7-битным ASCII, но требовал более одного байта для других символов. К началу 2010-х годов Unicode стал доминирующей кодировкой в вебе и программном обеспечении, хотя расширенные ASCII-кодировки всё ещё используются в некоторых устаревших системах и специализированных приложениях.

Классификация расширенных ASCII-кодировок

Расширенные ASCII-кодировки можно разделить на несколько основных групп по назначению:

Национальные кодировки

Предназначены для отображения алфавитов конкретных языков или групп языков. Примеры:

OEM-кодировки

Использовались в операционных системах DOS и ранних версиях Windows для текстового режима и файловых систем. Характеризуются наличием символов псевдографики. Примеры:

Кодировки для вычислительной техники

Специализированные кодировки для конкретных платформ или задач. Например:

Устройство и принцип кодирования

Структура байта

В расширенном ASCII каждый символ кодируется одним байтом (8 бит). Диапазон значений от 0 до 255. Первая половина (0–127) полностью соответствует стандартному 7-битному ASCII, что обеспечивает совместимость с английским текстом. Вторая половина (128–255) заполняется дополнительными символами в зависимости от конкретной кодовой страницы.

Таблица символов

Кодовая страница (code page) — это таблица, определяющая, какой символ соответствует каждому байтовому значению от 128 до 255. Например, в Windows-1251 код 192 соответствует букве «А», а в Windows-1252 — букве «À». Таким образом, один и тот же байт может обозначать совершенно разные символы в разных кодировках.

Управляющие символы

Коды от 0 до 31 и 127 (в некоторых кодировках также до 31 и 127) зарезервированы под управляющие символы (например, перевод строки, возврат каретки, табуляция). В расширенных кодировках они обычно не переопределяются.

Применение и значение

Историческое значение

Расширенный ASCII сыграл ключевую роль в компьютеризации неанглоязычных стран. Он позволил создавать текстовые документы, программы и интерфейсы на национальных языках на персональных компьютерах 1980–1990-х годов. Без него было бы невозможно массовое использование компьютеров в России, Европе и Азии.

Современное использование

Хотя Unicode стал стандартом, расширенные ASCII-кодировки всё ещё применяются в некоторых областях:

Проблемы совместимости

Основная проблема расширенного ASCII — отсутствие единого стандарта. При передаче текста между системами с разными кодовыми страницами происходит искажение символов. Для решения этой проблемы в интернете и современных ОС используется Unicode (UTF-8), который позволяет однозначно идентифицировать символы независимо от платформы.

Примеры кодовых страниц

Windows-1251 (кириллица)

Одна из самых распространённых кодировок для русского языка в Windows. Включает все буквы русского алфавита (заглавные и строчные), а также буквы украинского и белорусского языков (ґ, є, і, ї, ў). Коды от 192 до 255 заняты кириллическими символами.

KOI8-R (кириллица)

Разработана в СССР. Отличается от Windows-1251 тем, что кириллические буквы расположены в порядке, соответствующем английскому алфавиту (например, «А» имеет код 224, что соответствует «а» в ASCII). Это сделано для упрощения транслитерации. KOI8-R широко использовалась в Unix-системах и в сети Relcom.

CP437 (OEM-кодировка)

Использовалась в MS-DOS. Включает символы псевдографики (линии, рамки, блоки), математические символы (√, ∞, ±) и некоторые буквы европейских языков. Не содержит кириллицы.

ISO 8859-1 (Latin-1)

Стандартная кодировка для западноевропейских языков. Включает буквы с диакритическими знаками (например, é, ü, ñ). Является основой для Windows-1252, но отличается от неё в диапазоне 128–159.

Критика и недостатки

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

Источники

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

На главную BFOmetr →