Skip to content

Кириллическое расширение ASCII

Таблица ASCII являлась отправной точкой для развития всех современных кодировок. Изначально в нее было заложено только 128 знаков латинского алфавита, арабских цифр, знаков препинания и управляющих символов, но в расширенной версии появилась возможность использовать все 256 значений, которые можно закодировать в одном байте информации. Т.е. появилась возможность добавить в ASCII символы букв своего языка.

CP866

Одним из первых таких расширений выступила таблица CP866 (Codepage 866), в которой была возможность использовать символы русского алфавита. Первые 128 ее символов полностью соответствовали ASCII, а вот уже нижняя часть таблицы позволяла закодировать еще 128 знаков (русские буквы и всякая там псевдографика):

CP866 CP866

CP866

Откуда взялось такое количество псевдографики в CP866? Тут все дело в том, что эта кодировка для русского текста разрабатывалась еще в те года, когда графические операционные системы не были распространены как сейчас. А в DOS’е и подобных ей текстовых операционных системах псевдографика позволяла хоть как-то разнообразить оформление текстов и поэтому ею изобилует CP866 и все другие ее ровесницы из разряда расширенных версий ASCII.

CP866 распространяла компания IBM, но кроме этого для символов русского языка были разработаны еще ряд кодировок.

КОИ-8

КОИ-8 (Код обмена информацией 8 бит, KOI8)

Разработчики КОИ-8 поместили символы русского алфавита в верхней части кодовой таблицы таким образом, что позиции кириллических символов соответствуют их фонетическим аналогам в английском алфавите в нижней части таблицы. Это означает, что если в тексте, написанном в КОИ-8, убрать восьмой бит каждого символа, то получится «читаемый» текст, подобный транслиту. Например, слово «Информатика» превратится в «iNFORMATIKA». Как побочное следствие, символы кириллицы оказались расположены не в алфавитном порядке.

Существует несколько вариантов кодировки КОИ-8 для различных кириллических алфавитов. Русский алфавит описывается в кодировке KOI8-R, украинский — в KOI8-U, кавказский KOI8-C и т.д.

KOI8-R стал фактически стандартом для русской кириллицы в 1990-х годах в электронной почте.

KOI8-R KOI8-R

KOI8-R

Windows-1251

Windows-1251 выгодно отличается от других 8‑битных кириллических кодировок наличием практически всех символов, использующихся в русской типографике для обычного текста (отсутствует только значок ударения); Она также содержит все символы для других славянских языков: украинского, белорусского, сербского, македонского и болгарского.

Разработка Windows-1251 велась русским представительством Microsoft совместно с компаниями «Диалог» и «Параграф».

Windows-1251 Windows-1251

Windows-1251

Кракозябры

Из-за такого обилия кодировок русского языка, у производителей шрифтов и производителей программного обеспечения постоянно возникала головная боль, а у нас с вам, зачастую вылезали те самые пресловутые кракозябры, когда происходила путаница с используемой в тексте версией.

Вот, например, какие кракозябры могут появиться при неправильной перекодировке слова «Информатика»

оригинальная кодировка отображаемая кодировка результат
CP866 КОИ-8 ┬╜Д╝Ю╛═Б╗╙═
CP866 Windows-1251 €­д®а¬ вЁЄ
CP866 UTF-8 ���ଠ⨪�
КОИ-8 CP866 щ╬╞╧╥═┴╘╔╦┴
КОИ-8 Windows-1251 йОЖПТНБФЙЛБ
КОИ-8 UTF-8 �����������
Windows-1251 CP866 ╚эЇюЁьрЄшър
Windows-1251 КОИ-8 хМТНПЛЮРХЙЮ
Windows-1251 UTF-8 �����������
UTF-8 CP866 ╨Ш╨╜╤Д╨╛╤А╨╝╨░╤В╨╕╨║╨░
UTF-8 КОИ-8 п≤п╫я└п╬я─п╪п╟я┌п╦п╨п╟
UTF-8 Windows-1251 �нформатика

Очень часто они вылезали при отправке и получении сообщений по электронной почте, что повлекло за собой создание очень сложных перекодировочных таблиц, которые, собственно, решить эту проблему в корне не смогли, и зачастую пользователи для переписки использовали транслит латинских букв.

По сути, кракозябры, появляющиеся вместо русского текста, были результатом некорректного использования кодировки данного языка, которая не соответствовала той, в которой было закодировано текстовое сообщение изначально.

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

В конце концов такая ситуация с множеством кодировок многим надоела, появились предпосылки к созданию новой универсальной вариации, которая бы заменила собой все существующие и решила бы проблему с появлением не читаемых текстов. Кроме этого существовала проблема языков подобных китайскому, где символов языка было гораздо больше, чем 256.

Список использованных источников

  1. КОИ-8 [Электронный ресурс] URL: https://dic.academic.ru/dic.nsf/ruwiki/11979 (дата обращения: 12.07.2022)
  2. Кодировка текста ASCII (Windows 1251, CP866, KOI8-R) и Юникод (UTF 8, 16, 32) — как исправить проблему с кракозябрами [Электронный ресурс] URL: https://javarush.ru/groups/posts/1418-kodirovka-teksta-ascii-windows-1251-cp866-koi8-r-i-junikod-utf-8-16-32--kak-ispravitjh-problemu (дата обращения: 12.07.2022)
  3. Декодер онлайн [Электронный ресурс] URL: https://involta.ru/tools/decoder/ (дата обращения: 12.07.2022)
  4. Codepages: Comprehensive list [Электронный ресурс] URL: https://www.aivosto.com/articles/charsets-codepages.html (дата обращения: 12.07.2022)

Last update: July 17, 2022
Created: July 14, 2022

Comments