Кириллическое расширение ASCII
Таблица ASCII являлась отправной точкой для развития всех современных кодировок. Изначально в нее было заложено только 128 знаков латинского алфавита, арабских цифр, знаков препинания и управляющих символов, но в расширенной версии появилась возможность использовать все 256 значений, которые можно закодировать в одном байте информации. Т.е. появилась возможность добавить в ASCII символы букв своего языка.
CP866
Одним из первых таких расширений выступила таблица CP866 (Codepage 866), в которой была возможность использовать символы русского алфавита. Первые 128 ее символов полностью соответствовали ASCII, а вот уже нижняя часть таблицы позволяла закодировать еще 128 знаков (русские буквы и всякая там псевдографика):
Откуда взялось такое количество псевдографики в CP866? Тут все дело в том, что эта кодировка для русского текста разрабатывалась еще в те года, когда графические операционные системы не были распространены как сейчас. А в DOS’е и подобных ей текстовых операционных системах псевдографика позволяла хоть как-то разнообразить оформление текстов и поэтому ею изобилует CP866 и все другие ее ровесницы из разряда расширенных версий ASCII.
CP866 распространяла компания IBM, но кроме этого для символов русского языка были разработаны еще ряд кодировок.
КОИ-8
КОИ-8 (Код обмена информацией 8 бит, KOI8)
Разработчики КОИ-8 поместили символы русского алфавита в верхней части кодовой таблицы таким образом, что позиции кириллических символов соответствуют их фонетическим аналогам в английском алфавите в нижней части таблицы. Это означает, что если в тексте, написанном в КОИ-8, убрать восьмой бит каждого символа, то получится «читаемый» текст, подобный транслиту. Например, слово «Информатика» превратится в «iNFORMATIKA». Как побочное следствие, символы кириллицы оказались расположены не в алфавитном порядке.
Существует несколько вариантов кодировки КОИ-8 для различных кириллических алфавитов. Русский алфавит описывается в кодировке KOI8-R, украинский — в KOI8-U, кавказский KOI8-C и т.д.
KOI8-R стал фактически стандартом для русской кириллицы в 1990-х годах в электронной почте.
Windows-1251
Windows-1251 выгодно отличается от других 8‑битных кириллических кодировок наличием практически всех символов, использующихся в русской типографике для обычного текста (отсутствует только значок ударения); Она также содержит все символы для других славянских языков: украинского, белорусского, сербского, македонского и болгарского.
Разработка Windows-1251 велась русским представительством Microsoft совместно с компаниями «Диалог» и «Параграф».
Кракозябры
Из-за такого обилия кодировок русского языка, у производителей шрифтов и производителей программного обеспечения постоянно возникала головная боль, а у нас с вам, зачастую вылезали те самые пресловутые кракозябры, когда происходила путаница с используемой в тексте версией.
Вот, например, какие кракозябры могут появиться при неправильной перекодировке слова «Информатика»
оригинальная кодировка | отображаемая кодировка | результат |
---|---|---|
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.
Список использованных источников
- КОИ-8 [Электронный ресурс] URL: https://dic.academic.ru/dic.nsf/ruwiki/11979 (дата обращения: 12.07.2022)
- Кодировка текста 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)
- Декодер онлайн [Электронный ресурс] URL: https://involta.ru/tools/decoder/ (дата обращения: 12.07.2022)
- Codepages: Comprehensive list [Электронный ресурс] URL: https://www.aivosto.com/articles/charsets-codepages.html (дата обращения: 12.07.2022)
Created: July 14, 2022