Введение

Система кодирования восьмибитных символов, изобретенная IBM. Extended Binary Coded Decimal Interchange Code (EBCDIC;

В то время как IBM была одним из главных сторонников комитета по стандартизации ASCII, EBCDIC содержал несколько символов, таких как (US cent), которые использовались в системах IBM и не могли быть переведены в ASCII. Наиболее распространенным способом переноса строки в EBCDIC является использование кода NEL (NEXT LINE) между строками. Преобразователи в другие кодировки часто заменяют NEL на LF или CR/LF, даже если NEL присутствует в целевой кодировке. Это приводит к тому, что LF и NEL отображаются в один и тот же символ и их становится невозможно различить. Если использовалась семибитная ASCII, в восьмибитных байтах оставался "неиспользуемый" старший бит, и многие программы хранили в нем дополнительную информацию. Программы также могли упаковывать семь бит и отбрасывать восьмой, например, помещая пять семибитных символов ASCII в 36-битное слово. На PDP-11 байты со старшим битом, установленным в 1, интерпретировались как отрицательные числа, такое поведение было перенесено в C, что приводило к неожиданным проблемам при установленном старшем бите. Все это затрудняло переход с ASCII на восьмибитный EBCDIC (а также на восьмибитные расширенные кодировки ASCII).

Расположение страницы кода

Существуют сотни кодовых страниц EBCDIC, основанных на исходной кодировке символов EBCDIC. Различные кодовые страницы EBCDIC предназначены для использования в разных частях мира, включая кодовые страницы для нелатинских систем письма, таких как китайский, японский (например, EBCDIC 930, JEF и KEIS), корейский и греческий (EBCDIC 875). Также существует огромное количество вариаций, в которых символы переставлены без видимой причины. В таблице ниже показано "инвариантное подмножество" EBCDIC – это символы, которые должны иметь одинаковое соответствие на всех кодовых страницах EBCDIC, использующих латинский алфавит. (Это включает в себя большую часть инвариантного репертуара ISO/IEC 646, за исключением восклицательного знака.) Также показаны (серым цветом) отсутствующие знаки препинания ASCII и EBCDIC, расположенные в тех же позициях, что и на кодовой странице 37 (один из вариантов кодовой страницы EBCDIC). Пустые ячейки заполняются символами, специфичными для конкретного региона, но символы, выделенные серым цветом, часто также меняются местами или заменяются. Как и ASCII, инвариантное подмножество работает только для языков, использующих базовый латинский алфавит ISO, таких как английский (за исключением заимствованных слов и некоторых редких орфографических вариантов) и голландский (если лигатуры "ij" и "IJ" записываются как два отдельных символа).