таблица кодировки кои 8 десятичный код
8-битные кодировки: ASCII, КОИ-8R и CP1251
Первые таблицы кодировки, созданные в США, не использовали восьмой бит в байте. Текст представлялся как последовательность байт, но восьмой бит не учитывался (он применялся в служебных целях). Общепризнанным стандартом стала таблица ASCII (American Standard Code for Information Interchange ).
Первые 32 символа таблицы ASCII (от 00 до 1F ) использовались для непечатаемых символов. Они были предназначены для управления печатающим устройством и т.п. Остальная часть – от 20 до 7F – обычные (печатаемые) символы.
Как легко заметить, в этой кодировке представлены только латинские буквы, причём те, которые используются в английском языке. Есть также арифметические и другие служебные символы. Но нет ни русских букв, ни даже специальных латинских для немецкого или французского языка.
Это легко объяснить – кодировка разрабатывалась имено как американский стандарт. Когда компьютеры стали применяться во всём мире, потребовалось кодировать и другие символы.
Для этого было принято решение использовать восьмой бит в каждом байте. Тем самым оказались доступны ещё 128 значений (от 80 до FF), которые можно было использовать для кодирования символов.
Первая из восьмибитных таблиц – “расширенный ASCII” (Extended ASCII) – включала в себя различные варианты латинских символов, применяемые в некоторых языках Западной Европы. Также в ней были другие дополнительные символы, включая псевдографику.
Таблица 2. Extended ASCII
Псевдографические символы позволяют, выводя на экран только текстовые символы, обеспечивать некоторое подобие графики. При помощи псевдографики работает, например, програма для управления файлами FAR Manager.
Русских букв в таблице Extended ASCII не было. В России (ранее – СССР) и в других государствах создавались свои кодировки, позволяющие представлять в 8-битных текстовых файлах специфические “национальные” символы – латинские буквы польского и чешского языков, кириллицу (включая русские буквы ) и другие алфавиты.
Во всех кодировках, получивших распространение, первые 127 символов (т.е. значения байта при восьмом бите, равном 0) совпадают с ASCII. Таким образом, файл в формате ASCII работает в любой из этих кодировок; буквы английского языка в них представлены одинаково.
Организация ISO (International Standardization Organization – Международная Организация по Стандартам) приняла группу стандартов ISO 8859. Она определяет 8-битные кодировки для разных групп языков. Так, ISO 8859-1 – это Extended ASCII, таблица для США и Западной Европы. А ISO 8859-5 – таблица для кириллицы (включая русский язык).
Однако по историческим причинам кодировка ISO 8859-5 не прижилась. Реально для русского языка применяются следующие кодировки:
– КОИ-8. Разработана в 70-80-е годы. Является общепринятым стандартом для передачи почтовых сообщений в российском Интернете. Широко применяется также в операционных системах семейства Unix, включая Linux. Вариант КОИ-8, рассчитанный на русский язык, называется КОИ-8R; существуют версии для иных кириллических языков (так, KOI8-U – вариант для украинского языка).
– Code Page 1251, CP1251, Windows-1251. Разработана компанией Microsoft для поддержки русского языка в системе Windows.
Основным достоинством CP866 было сохранение символов псевдографики на тех же местах, что и в Extended ASCII; поэтому могли без изменений работать зарубежные текстовые программы, например, знаменитый Norton Commander. Ныне CP866 используется для программ под Windows, работающих в текстовых окнах или в полноэкранном текстовом режиме, включая FAR Manager.
Тексты в CP866 в последние годы встречаются довольно редко. Поэтому мы подробнее остановимся на двух других кодировках – КОИ-8R и CP1251.
Как можно заметить, в таблице кодировки CP1251 русские буквы расположены в алфавитном порядке (за исключением, правда, буквы Ё). Благодаря такому расположению компьютерным программам очень просто осуществлять сортировку по алфавиту.
А вот в КОИ-8R порядок русских букв кажется случайным. Но на самом деле это не так.
А теперь сравните КОИ-8R с таблицей ASCII (табл.1). Вы обнаружите, что русские буквы поставлены в чёткое соответствие с латинскими. Если исчезнет восьмой бит, строчные русские буквы превращаются в заглавные латинские, а заглавные русские – в строчные латинские. Так, E1 в КОИ-8 – это русское “А”, тогда как 61 в ASCII – латинское “a”.
Итак, КОИ-8 позволяет сохранять читаемость русского текста при потере 8-го бита. “Привет всем” превращается в “pRIWET WSEM”.
В последнее время и алфавитный порядок расположения символов в таблице кодировки, и читаемость при потере 8-го бита потеряли решающее значение. Восьмой бит в современных компьютерах не теряется ни при передаче, ни при обработке. А сортировка по алфавиту производится с учётом кодировки, а не простым сравнением кодов. (Кстати, коды CP 1251 расположены не полностью по алфавиту – буква Ё не находится на своём месте).
Из-за того, что распространённых кодировок оказалось две, при работе с Интернетом (почта, просмотр Web-сайтов) иногда можно вместо русского текста увидеть бессмысленный набор букв. Например, “Я СБЮФЕМХЕЛ”. Это всего лишь слова “с уважением”; но они были закодированы в кодировке CP1251, а компьютер декодировал текст по таблице КОИ-8. Если те же слова были, наоборот, закодированы в КОИ-8, а компьютер декодировал текст по таблице CP1251, результатом будет “У ХЧБЦЕОЙЕН”.
Иногда бывает, что компьютер расшифровывает русскоязычные письма и вовсе по таблице, не предназначенной для русского языка. Тогда вместо русских букв появляются бессмысленный набор символов (например, латинские буквы восточно-европейских языков); их часто называют “крокозябрами”.
В большинстве случаев современные программы справляются с определением кодировок документов Интернета (электронных писем и Web-страниц) самостоятельно. Но иногда они “дают осечку”, и тогда можно увидеть странные последовательности русских букв или же “крокозябры”. Как правило, чтобы в такой ситуации вывести на экран настоящий текст, достаточно выбрать кодировку вручную в меню программы.
Таблица кодировки кои 8 десятичный код
КОИ-8 (код обмена информацией, 8 бит), KOI8 — восьмибитовая кодовая страница, совместимая с ASCII. Разработана для кодирования букв кириллических алфавитов. Была широко распространена как основная русская кодировка в Unix-совместимых ОС и в электронной почте, однако ближе к 2010 году, с распространением Юникода, постепенно выходит из употребления.
Существует также семибитовая версия кодировки, не полностью совместимая с ASCII — КОИ-7. КОИ-7 и КОИ-8 описаны в ныне не действующем ГОСТ 19768-74.
Разработчики КОИ-8 поместили символы русского алфавита в верхней части кодовой таблицы таким образом, что позиции символов кириллицы соответствуют их фонетическим аналогам в английском алфавите из нижней части таблицы. Это означает, что если в тексте, написанном в КОИ-8, для каждого символа убрать по одному биту слева, то получится относительно читаемый текст, подобный транслиту. Например, слова «Русский Текст» превратятся в «rUSSKIJ tEKST». Из‑за этого символы кириллицы расположены не в алфавитном порядке.
Существует несколько вариантов кодировки КОИ-8 для различных кириллических алфавитов, расширяющие определённые коды (общий диапазон 192—255 с 32 русскими буквами в двух регистрах остаётся неизменным во всех вариантах). Русский алфавит описывается в кодировке KOI8-R, украинский — в KOI8-U, таджикский — в KOI8-T.
В 1990-х годах KOI8-R стал фактически стандартом для кодирования русской кириллицы в UNIX-подобных операционных системах и электронной почте. Автор данной кодировки (RFC 1489) — Андрей Чернов в начале 1990-х годов работал в компании Демос (сеть Релком) и непосредственно участвовал в запуске и наладке первого интернет-канала между Россией и западными странами. КОИ-8 стала первой русской стандартизированной кодировкой в интернете.
IETF утвердил несколько RFC по вариантам кодировки KOI-8:
IANA зарегистрировала кодировки в своём списке.
Стандарт RFC 1489 предписывает наличие графических символов «рамок» (псевдографики), однако это требование выполняется довольно редко.
В Microsoft Windows KOI8-R присвоен код страницы 20866, KOI8-U — 21866.
Начало таблицы кодировки (латиница) полностью соответствует кодировке ASCII.
В приведённых таблицах числа под буквами обозначают шестнадцатеричный код буквы в Юникоде.
КОДИРОВКИ WIN1251, KOI7, KOI8R И ДРУГИЕ
Рассмотрим наиболее известные и важные виды кодировок, используемые в разных операционных системах. Особое внимание уделим, конечно, кириллическим кодировкам, а именно WIN1251, KOI7, KOI8R и др. Ранее, в разделе 7.1, мы познакомились со стандартными английскими кодировками типа ASCII и новейшими универсальными кодировками Unicode. Однако исторически появлению Unicode предшествовала целая серия кириллических кодировок, которые и сейчас еще активно и часто используются в операционных системах и Интернет.
Кодировка KOI-7 (KOИ-7, Код Обмена Информацией, 7-ми битный) позволяет кодировать 2 7 = 128 символов, из которых 32 буквы русского алфавита, 26 букв латинского алфавита, 10 цифр и 26 печатаемых символа, пробел, специальные символы и непечатаемые символы. Коды непечатаемых символов находятся в диапазоне 00-20 (с ними можно ознакомиться в разделе 7.1, в таблице ASCII).
Замечательным правилом, действующим в этой кодировке является весовой принцип кодирования латинских символов, для которого верно правило: Веса кодов букв латинского алфавита увеличиваются на единицу в алфавитном порядке, то есть:
Пользуясь этим правилом, можно легко располагать слова в алфавитном порядке, поскольку эта операция сводится к простому сравнению двоичных чисел, соответствующих кодам символов. Для русских символов этот принцип несправедлив.
Каждый символ в кодировке KOI-7 представлен восьмиразрядным двоичным числом (фактически, это один байт). Младшие 7 знакомест предназначены для кода самого символа, а самый старший бит называется разрядом контроля четности и очень часто используется для контроля ошибок, особенно при передаче данных. В этот разряд вписывают такое число (0 или 1), чтобы сумма единиц, содержащихся в коде данного символа, было четным.
   Число    |    Символ    |    Число    |    Символ    |    Число    |    Символ    |    Число    |    Символ    |    Число    |    Символ    |    Число    |    Символ    | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
KOI-8RКодировка KOI-8R (KOИ-8, Код Обмена Информацией, 8-ми битный) позволяет кодировать 2 8 = 256 символов, в число которых входят 31 прописная и 32 строчных букв русского алфавита, 26 прописных и 26 строчных букв латинского алфавита, 10 цифр, 32 служебных знака и специальные символы, предназначенные для управления устройствами и передачи данных. Коды в диапазоне 21-5F соответствуют одинаковым символам как для KOI-7, так и для KOI-8R.
|