C русская кодировка: Локализация и кириллица в консоли

c++ — Русская строка в C

Как получается что русские символы умещаются в C строке в кодировке UTF-8 когда каждый русский символ в этой кодировке занимает 2 байта, а ячейка в C строке вмещает только 1 байт? Почему если выводить эту строку, то она выведется без проблем, а если выводить её посимвольно, то она выводит ошибки? Ещё если можно, то посоветуйте материалов почитать по этой теме.

char a[] = "Строка";
std::cout << a << std::endl;
for (int i = 0; i < 6; i++)
std::cout << a[i] << std::endl;

1

Чудес не бывает — символы, занимающие больше одного байта в Си так же занимают больше одного байта. В случае со строкой char они лежат в нескольких ячейках (в случае с двухбайтными — первый символ лежит в первых двух, второй — во вторых двух).

Если говорить о C++, то для многобайтных символов есть специальный тип wchar_t

, который имеет размер в 4 байта для GNU/Linux и 2 байта для Windows API

Аналогом std::string для этого типа является std::wstring.

http://en.cppreference.com/w/cpp/string/basic_string


// сперва считаем символ беззнаковым, потом переводим его в целое число
char a[] = "Строка";
std::cout << (int)(unsigned char)a[0] << "; " << (int)(unsigned char)a[1] << std::endl;

Выведет 208; 161 (https://ideone.com/FyUdhj)

Согласно вот это (https://unicode-table.com/ru/0421/) таблице, символ С в UTF-8 представляется двумя байтами, как раз 208 161

7

Ячейка в С-строке вмещает, конечно, один байт, но каждый символ в таком случае будет занимать в ней два места. И длина всей строки — 12

char a[] = "Строка";
std::cout << a << ' ' << strlen(a) << std::endl; // Строка 12

Например, если вывести из этой строки по два символа, то выведутся правильные символы:

for (int i = 0; i < 6; i++)
    std::cout << a[2*i] << a[2*i+1] << std::endl;

utf-8 — мультибайтовая кодировка (разные символы могут занимать разное количество байт). В том числе кириллические символы будут занимать два байта. При инициализации строки каждый по два байта и займёт.
Следующие две конструкции с точки зрения языка эквивалентны:

char a[] = "\xd0\xa1\xd1\x82\xd1\x80\xd0\xbe\xd0\xba\xd0\xb0";
char a[] = "Строка";

3

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

Как научить Python русскому языку — Учимся с Python

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

и &. Введенные вами с клавиатуры символы хранятся в памяти компьютера в виде чисел. Потому что ничего, кроме чисел, в компьютере не может храниться.

Поэтому каждый символ, отображаемый или принимаемый компьютером, кодируется некоторым числом. Ниже представлена таблица кодировки ASCII, которая использует числа от 0 до 127 для кодирования символов, включая латиницу (буквы латинского алфавита), цифры от 0 до 9, знаки пунктуации и специальные символы. Кроме того, коды от 0 до 31 кодируют специальные управляющие символы, такие как табуляция TAB, перевод строки LF и другие. Подробнее познакомиться с таблицей ASCII можно в Википедии.

0NULL32Space64@96`
1SOH33!65A97a
2STX3466B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL3971G103g
8BS40(72H104h
9
TAB41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR4577M109m
14SO46.78N110n
15SI47/79O111o
16DLE48080P112p
17DC149181Q113q
18DC250282R114r
19DC351383S115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23ETB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC 59;91[123{
28FS60<92124|
29GS61=93]125}
30RS62>94^126~
31US63?95_127DEL

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

Закодируем, используя приведенную выше таблицу кодов ASCII, слово “Hello”. Мы получим следующую последовательностью числовых кодов: 72, 101, 108, 108, 111. Проверить (и узнать) соответствие букв и кодов можно при помощи встроенных функций Python chr и ord. Функция chr принимает в качестве аргумента целочисленный код и возвращает соответствующий ему символ. Функция ord, наоборот, принимает символ и возвращает кодирующее его целое число:

>>> ord('H')
72
>>> ord('e')
101
>>> chr(101)
'e'
>>> type(chr(101))
<type 'str'>
>>>

Посмотрите еще раз на таблицу ASCII. Как видите, в ней нет букв русского алфавита. А также в ней греческих, арабских, японских и других букв и иероглифов, использующихся в разных языках Земли. Для кодирования букв и других символов, отсутствующих в таблице ASCII, используются числа больше 128. На следующем рисунке представлена кодировка cp866, использующая числа от 128 до 255 для кодирования символов кириллицы (букв русского алфавита) и специальных графических символов.

128А160а192224р
129Б161б193225с
130В162в194226т
131Г163г195227у
132Д164д196228ф
133Е165е197229х
134Ж166ж198230ц
135З167з199231ч
136И168и200232ш
137Й169й201233щ
138К170к202234ъ
139Л171л203235ы
140М172м204236ь
141Н173н205237э
142О174о206238ю
143П175п207239я
144Р176208240Ё
145С177209241ё
146Т178210242Є
147У179211243є
148Ф180212244Ї
149Х181213245ї
150Ц182214246Ў
151Ч183215247ў
152Ш184216248°
153Щ185217249
154Ъ186218250·
155Ы187219251
156Ь188220252
157Э189221253¤
158Ю190222254
159Я191223255 

Кодировка cp866 использовалась в операционной системе MS DOS и теперь по умолчанию используется в консоли MS Windows. Буквы cp в названии этой и других кодировок — сокращение от code page (англ.: кодовая страница).

Случилось так, что числа от 128 до 255 стали использоваться в разных странах для кодирования букв алфавитов разных языков, а не только русского. Но даже если вести речь только о кириллице, то, кроме кодировки cp866, существуют несколько других кодировок, которые иначе сопоставляют буквы кириллицы кодам в диапазоне от 128 до 255. В качестве примера еще одной кириллической кодировки ниже приведена таблица кодов cp1251, используемая графическими приложениями в ОС MS Windows, такими как Блокнот, MS Office и другими.

128Ђ160 192А224а
129Ѓ161Ў193Б225б
130162ў194В226в
131ѓ163Ј195Г227г
132164¤196Д228д
133165Ґ197Е229е
134166¦198Ж230ж
135167§199З231з
136168Ё200И232и
137169©201Й233й
138Љ170Є202К234к
139171«203Л235л
140Њ172¬204М236м
141Ќ173­205Н237н
142Ћ174®206О238о
143Џ175Ї207П239п
144ђ176°208Р240р
145177±209С241с
146178І210Т242т
147179і211У243у
148180ґ212Ф244ф
149181µ213Х245х
150182214Ц246ц
151183·215Ч247ч
152˜184ё216Ш248ш
153185217Щ249щ
154љ186
є
218Ъ250ъ
155187»219Ы251ы
156њ188ј220Ь252ь
157ќ189Ѕ221Э253э
158ћ190ѕ222Ю254ю
159џ191ї223Я255я

Из сказанного можно сделать вывод о том, что для правильного отображения символов на экране компьютеру необходимо знать, в какой кодировке представлены данные, которые нужно отобразить. Например, пускай нам дана следующая последовательность кодов: 232, 227, 226. Если принять, что это символы, представленные в кодировке cp866, то мы получим слово “шут”. А если принять, что это символы, представленные в кодировке cp1251, то мы получим слово “игв”. А в греческой кодировке cp1253 эти же коды дадут нам “θγβ”! На сегодняшний день существуют десятки кодировок, сопоставляющих числовые коды от 128 до 255 различным символам!

Если вы запускаете интерпретатор Python в консоли русскоязычной Windows, то Python ожидает, что строки используют кодировку cp866. Давайте проведем небольшое исследование для того, чтобы подтвердить или опровергнуть это утверждение. Воспользуемся функцией ord для получения числовых кодов нескольких русских букв, введенных с клавиатуры, и таблицей кодов cp866, приведенной выше, чтобы убедиться, что функция ord вернула нам коды букв в кодировке cp866:

>>> print ord('э'), ord('ю'), ord('я')
237 238 239
>>>

А функция chr выведет буквы русского алфавита, соответствующие кодам, взятым нами из таблицы cp866:

>>> print chr(128), chr(129), chr(130)
А Б В
>>>

Итак, русские буквы, которые мы вводим с клавиатуры при работе в интерактивном режиме Python, представлены в кодировке cp866. Работая в интерактивном режиме Python, мы можем смело использовать русские буквы в строковых значениях:

>>> name = 'мир'
>>> print 'Привет', name
Привет мир
>>>

Таким образом, все примеры работы в интерактивном режиме, приведенные в книге, можно безболезненно русифицировать, заменяя английские слова и предложения на русские.

Однако, для русификации скриптов Python, сохраненных в файлах, нам осталось сделать еще один шаг. Нам нужно ответить на вопрос, в какой кодировке сохранен наш скрипт в файле? Это зависит от текстового редактора, в котором был написан и сохранен скрипт, и от того, была ли явно указана кодировка при сохранении файла.

Как было сказано выше, Блокнот, или Notepad, простой текстовый редактор, имеющийся в ОС Windows, использует кириллическую кодировку cp1251, а консоль Windows, или окно для работы с командной строкой, по умолчанию использует кириллическую кодировку cp866. Это очень неудобно для русскоязычных пользователей.

Например, создайте в Блокноте файл C:\russian.txt с единственной строкой:

Привет мир!

А теперь откройте окно с командной строкой и выведите содержимое этого файла на экран:

C:\>type russian.txt
╧ЁштхЄ ьшЁ!

Что это за кракозябры?

Если вы отыщете эти символы, один за одним, в приведенной выше таблице кодов cp866, то получится последовательность кодов: 207, 240, 232, 226, 229, 242, 32, 252, 248, 240, 33. (Пробел и восклицательный знак имеют коды из диапазона 0 — 127 и кодируются таблицей ASCII.) Теперь переведите эти коды в символы, используя таблицу кодировки cp1251, и вы получите “Привет мир!” Кракозябры в консольном окне мы видим потому, что Блокнот сохранил файл в кодировке cp1251, а консольное окно считает, что коды от 128 до 255 представляют символы из кодировки cp866!

Преодолеть эту проблему можно с помощью консольной команды chcp. Команда chcp без параметров показывает, какая кодировка является текущей:

C:\>chcp
Active code page: 866

А в качестве параметра команда chcp принимает номер кодировки, которую необходимо сделать текущей. Если с ее помощью изменить текущую кодировку консольного окна на cp1251, то мы, наконец, сможем увидеть содержимое файла russian.txt неискаженным:

C:\>chcp 1251
Active code page: 1251
C:\>type russian.txt
Привет мир!

Скрипт на Python является текстовым файлом точно так же, как файл russian.txt, с которым мы экспериментировали. И если создать и сохранить скрипт, использующий русские буквы, в Блокноте, то скрипт будет сохранен в кодировке cp1251. Давайте откроем в Блокноте файл russian.txt и сохраним его как russian.py, слегка изменив его содержимое:

print 'Привет мир!'

Теперь это файл с очень простым скриптом на языке Python. Выполним его:

C:\>python russian.py
  File "russian.py", line 1
SyntaxError: Non-ASCII character '\xcf' in file russian.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Вместо ожидаемого приветствия на русском языке Python вывел сообщение об ошибке. Сообщение говорит о том, что в 1-ой строке файла встретился символ, не являющийся символом ASCII, а кодировка не объявлена. Очевидно, что символы, не являющиеся символами ASCII, в нашем файле — это русские буквы. Но что же в этом плохого?

Дело в том, что Python по умолчанию ожидает, что скрипты, переданные ему для выполнения, имеют кодировку ASCII, то есть, содержат символы с кодами в диапазоне 0 — 127. Для всех, кто использует в своих скриптах только латиницу, цифры и другие символы ASCII, это работает прекрасно. Пользователи, использующие в своих программах строковые значения и комментарии на английском языке, чувствуют себя совершенно комфортно в этой ситуации и, по большей части, не подозревают о проблеме, с которой мы только что столкнулись.

Чтобы сообщить Python о том, что скрипт использует кодировку, отличную от ASCII, нужно в начале файла поместить комментарий специального вида, содержащий информацию о кодировке файла. Для скрипта russian.py, созданного в Блокноте, укажем кодировку cp1251, после чего скрипт будет выглядеть так:

# -*- coding: cp1251 -*-
print 'Привет мир!'

После этого сможем успешно выполнить скрипт в консольном окне Windows (только не забудьте установить текущую кодировку командой chcp 1251):

C:\>chcp 1251
Active code page: 1251
C:\>python russian. py
Привет мир!

Итак, для того, чтобы скрипт Python заговорил по-русски в консольном окне Windows, необходимо:

  1. Указать в начале скрипта кодировку, которую использует файл. Например:

    # -*- coding: cp1251 -*-
    
  2. Установить в консольном окне Windows кодировку, которую использует выполняемый скрипт. Например:

    C:\> chcp 1251
    Active code page: 1251

В общем случае, скрипт с русскими строками и комментариями может использовать любую из кириллических кодировок, в частности, любую из рассмотренных выше, cp1251 или cp866. Важно, чтобы объявленная в начале файла кодировка была та самая, в которой сохранен файл.

Если скрипт использует кодировку cp866, то в консольном окне русскоязычной Windows не нужно предпринимать никаких специальных действий перед выполнением скрипта, ведь cp866 — кодировка, установленная в консоли по умолчанию. Но если скрипт использует кодировку cp1251, то перед его выполнением в консоли нужно установить текущую кодировку командой chcp 1251.

The Cyrillic Charset Soup — (c) Roman Czyborra

Cyrillic Charset Soup — (c) Роман Чиборра

Несмотря на то, что ISO 8859 содержит стандартную кириллицу, существует множество других кириллических кодировок, используемых на компьютерах по всему миру. Эта страница пытается объяснить, почему это так, давая исторический обзор. Каждый набор символов иллюстрируется растровым изображением в формате GIF вместе с лежащей в его основе таблицей отображения Unicode и шрифтом BDF (X/Unix).

Кириллица

Братья и православные монахи-славяне Кирилл и Мефодий изобрели глаголицу в Македонии в 863 году как зашифрованный греческий алфавит с расширениями для особых славянских звуков. Их ученый Климент Охридский позже изобрел «кириллицу» как более удобочитаемую преобразованную глаголицу. На протяжении веков кириллица распространялась и трансформировалась, модернизировавшись в нынешнюю романизированную форму (Гражданку) при царе Петре Великом.

В настоящее время кириллица используется более чем в 70 языках, от восточноевропейских славянских языков русского (ru), украинского (uk), белорусского (be), болгарского (bg), сербского (sr) и македонского (mk) до центральноевропейского Алтайские языки Азии, такие как азербайджанский (az), туркменский (tk), курдский (ku), узбекский (uz), казахский (kk), киргизский (ky) и другие, такие как таджикский (tg) и монгольский (mn). В Вашей библиотеке может быть брошюра Кенесбая Мусаевича Мусаева «Алфавиты языков народов СССР», изданная в 1965.

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

ГОСТ-13052


Первый КОИ

Самая старая стандартизированная кириллическая компьютерная кодировка, которую я нашел (в Language Automation Worldwide Джона Кльюса), — это государственный стандарт ГОСТ 13052, 7-битная кодировка, которая кодирует буквы русского алфавита (что также удовлетворяет всем болгарским потребностям) поверх соответствующих Буквы ASCII противоположного регистра (для распознавания русского текста типа «РУССКИЙ ТЕКСТ» по его регистру при представлении в ASCII. Я буду называть это свойство соответствием KOI), пожертвовали точкой л, чтобы сократить алфавит до 32 букв, умещающихся в два строки и удалил редко необходимый ЗАГЛАВНЫЙ ЖЕСТКИЙ ЗНАК, чтобы предотвратить его столкновение с DELETE в позиции =7F или EOF=-1:

charset=koi-0 [TXT] [BDF]

Тот факт, что в болгарском языке гораздо чаще используется ЗАГЛАВНЫЙ ТВЕРДЫЙ ЗНАК, побудил некоторых болгар вместо этого кодировать свой твердый знак поверх ненужного русского YERY bI.

ГОСТ-19768-74


КОИ-7 и КОИ-8

В 1974 году ГОСТ опубликовал еще один государственный стандарт ГОСТ 19768-74 с двумя наборами символов, которые смешивали латинский и кириллический алфавиты в одном наборе, что сохранило исходную идею соответствия KOI:

Первым был еще один 7-битный набор символов с именем KOI-7 только с заглавными буквами:

charset=koi-7 [TXT] [BDF]


Оригинальный КОИ-8

Вторым набором символов, определенным в ГОСТ 19768-74, был знаменитый 8-битный Код для Обмена и Обработки Информации (КОИ-8), который давал расшифровываемый ASCII-текст при удалении старшего бита и по праву может называться кириллическим ASCII. Вот изображение его верхней части (G1):

charset=koi8-a [TXT] [BDF]


КОИ-8 с л

KOI-8 использовался на многих сетевых узлах Unix. Естественно, знак доллара ASCII $ стал использоваться вместо знака международной валюты ¤, хотя это было неполиткорректно. И пунктирное л (йо) было добавлено в колонке 3, так что такие слова, как ел (йео), больше не нужно было писать как ee без ударения.

Точнее, последний шаг не был сделан до тех пор, пока компания Demos не начала портировать поддержку кириллицы на Unix-системы для ПК, такие как Xenix, в конце 1980-х и разработала новую русскую кодовую страницу KOI-8, которая позже стала известна как KOI8-R с пунктирный л на своем месте от первого ДИС-6937-8/DIS-8859-5 и все нерусские буквы вычищены и заменены блочной графикой.

Но многие поставщики шрифтов реализовали только подмножество букв. Назовем его КОИ8-Б, это расширенная (большая) база КОИ-8, содержащая буквы (буквы), общие (баса) для всех современных вариантов КОИ-8:

кодировка = koi8-b [TXT] [BDF]


KOI-8 становится европейским


ISO-IR-111 или ECMA-кириллица

В середине 1980-х комитет ECMA, разрабатывавший стандарт ISO-8859Серия и ее кириллица ISO-8859-5 хотели сохранить совместимость с установленной базой десятилетнего стандарта КОИ-8 и изящно добавили недостающие украинские, белорусские, сербские и македонские буквы в неиспользуемых кодовых точках. Их проект был опубликован как стандарт ECMA-113 1-го издания в 1986 году и проект международного стандарта DIS-8859-5 в 1987 году и был зарегистрирован под номером 111 в Международном реестре наборов символов ISO для использования с управляющими последовательностями (ISO-2022). отсюда и название ISO-IR-111 и никнейм ECMA-Cyrillic:

charset=koi8-e [TXT] [BDF]


ГОСТ-19768-87


Все изменено

ISO-IR-111 так и не был принят в качестве окончательного ISO-8859-5, потому что тем временем ГОСТ вдохнул некоторую перестройку и объявил установленную базу и соответствие KOI менее важными и пересмотрел свой стандарт 19768 с 1974 в 1987 году в несовместимый новый ГОСТ 19768. -87, который переместил русские буквы на одну строку вверх и упорядочил их в порядке соответствия родного русского языка (АБВГД) вместо порядка соответствия КОИ (АБВДЭ):

кодировка=ГОСТ-19768-87 [TXT] [BDF]


ISO-8859-5 Кириллица

ECMA немедленно последовала за шагом ГОСТа по совету своих экспертов из Советского Союза, пересмотрев свое первое предложение и заменив свои символы ISO-IR-111 на кодовые позиции нового ГОСТ 19768-87. Разработчики не стали сортировать нерусские буквы в русский алфавит, чтобы обеспечить правильный словарный порядок для всех языков, как, например, в стандарте ISO 9 (Транслитерация кириллицы). Пересмотренное предложение было опубликовано как 2-е издание ECMA-113:19.88 (заменив исходный ECMA-113:1986, который стал жить дальше (популярен благодаря сочетанию нерусских букв с совместимостью с KOI-8) под псевдонимом ECMA-Cyrillic (хотя ECMA отсылает вас к ISO-8859-5 теперь ) или ISO-IR-111) и принят в ISO 8859 (несмотря на то, что Советский Союз проголосовал против знака доллара) как окончательный ISO-8859-5 (ISO-IR-144) в 1988 году. Многие люди, включая меня, считают, что это избавило бы нас от многих проблем, если бы исходный KOI8-совместимый DIS-8859-5:1987 также был выбран ISO-8859.-5:1988. Теперь у нас есть международный стандарт ISO-8859-5, который настолько нестандартен, что его почти никто не любит и не использует:

.

кодировка = ISO-8859-5 [TXT] [BDF]


Релком KOI8-R

После того, как в RFC 1341 (MIME) было предложено использовать кириллицу ISO-8859-5 в электронной переписке, в то время как русский раздел Интернета (группы новостей relcom. *) все еще использовал KOI-8, Андрей Чернов отправился публиковать свой RFC 1489 Регистрация набора кириллических символов «KOI8-R» и установил KOI8-R в качестве стандарта де-факто в Интернете. KOI8-R, который позже был также пронумерован CP878, содержит пунктирный KOI8 плюс множество символов рисования прямоугольника:

кодировка = koi8-r [TXT] [BDF]

Андрей Чернов предлагает много практической информации о KOI8-R на своем сайте.

Украинский КОИ8-У

При всех этих кодировках есть особая украинская проблема. Украинцы читают букву GHE со штрихом вниз как хе. Для правильного написания гхе нужна украинская буква ГЕ С ВВЕРХОМ, которая была запрещена сталинскими чиновниками и восстановлена ​​в 1990 году.

Можно злоупотреблять GHE с акцентом (македонский GJE) в ISO-IR-111 или ISO-8859.-5 для представления GHE WITH UPTURN, но это не кажется предпочтительным вариантом. Украинцы, похоже, предпочитают кодировки, включающие настоящий GHE WITH UPTURN. GHE WITH UPTURN присутствует в CP1251 от Microsoft, KOI8-Unified от Fingertip и, конечно же, в Unicode. Тем не менее, эти варианты не казались достаточно близкими к KOI8-R, чтобы помешать украинским почтмейстерам разработать новый KOI8-U и опубликовать его как RFC2319 в апреле 1998 года. KOI8-U добавил только украинские буквы в позиции, совместимые с ISO-IR. -111 используется многими украинцами и сохранил как можно больше символов для рисования, потому что многие пользователи в этом районе все еще привязаны к MS-DOS. Из-за этого предпочтения в нем отсутствует короткое U с белорусским акцентом, а также сербская и македонская поддержка:

кодировка = koi8-u [TXT] [BDF]

Я предполагаю, что спецификация RFC2319 и RFC1489 маркера KOI8-R как математического U+2219 BULLET OPERATOR является ошибкой, унаследованной от RFC1345, и должна быть исправлена ​​на U+2022 BULLET, как в собственных таблицах Келда Симонсена для IBM437 или KOI8-R. Вообще обратите внимание, что RFC1345 и все, что основано на нем, например GNU recode 3. 4.1, содержало ряд ошибок, особенно в области кириллицы: его isoir111 больше похож на cp1251, чем на koi8. RFC2319 содержит дополнительную ошибку, заключающуюся в том, что он кодирует CYRILLIC CAPITAL LETTER UKRAINIAN IE как U+0403 вместо U+0404.


КОИ8-Унифицированный

Питер Кассетта из Fingertip Software, который также опубликовал хороший справочник кириллической кодировки для своих клиентов, уже разработал и предложил другое решение: его KOI8-Unified объединяет все буквы ISO-IR-111 с украинскими буквами KOI8-U и базовым KOI8. -R блокировать графику и некоторые популярные символы из кодовых страниц Windows 1251 и 1252, уравновешивая различные потребности совместимости:

кодировка = koi8-f [TXT] [BDF]

Вы можете использовать этот шрифт koi8-f для отображения всего текста koi8-*, и все буквы будут отображаться правильно, но некоторые менее используемые графические символы в koi8-r могут отображаться неправильно.


Microsoft CP1251

Другим важным игроком на этом поле является кодовая страница Microsoft WinCyrillic Windows CP1251, для которой Microsoft зарегистрировала метку «utf-8», которую не следует путать с предшественником сегодняшней Windows95 ® 13-го века. По состоянию на декабрь 1997 года даже новый веб-сервер ГОСТа (Lotus Notes) приветствует вас с помощью charset=utf-8 — ГОСТ (Российский орган по стандартизации и орган-член ISO) больше не следует своим собственным стандартам! CP1251 имеет богатый репертуар в порядке, несовместимом ни с ISO-IR-111 (KOI8), ни с ISO-8859.-5:

кодировка=utf-8 [TXT] [BDF]


МакУкраинский

MacУкраинский (= MacCyrillic + GHE С ВВЕРХОМ) имеет те же буквы, но в другом порядке:

charset=MacУкраинский [TXT] [BDF]


Альтернативный вариант

Более старая популярная кодировка — альтернативный вариант, поддерживаемый MS-DOS CP866:

кодировка=cp866 [TXT] [BDF]


Болгарский МИК

Болгарский ПК Prawec 16 и болгарская карта клавиатуры в Linux используют кодировку MIK:

charset=болгарский-мик [TXT] [BDF]


Юникод

Вам надоело это изобилие кодировок, среди которых нет лучших? Хотели бы вы иметь одну хорошую кодировку, которая способна заменить все вышеперечисленное и будет принята везде? Хотели бы вы также писать на неславянских кириллических языках? Вы получаете все это и многое другое с Unicode (ISO-10646), который просто кодирует все символы мира.

Это блок кириллицы U+0400 в Unicode. Это соответствует порядку ISO-8859-5:

кодировка = unicode-2-1 [TXT] [BDF]

Ольга Лапко утверждает на страницах 175 и 179 блестящего выпуска 17-2 TUG boat (Материалы ежегодной встречи группы пользователей TeX 1996 года в Дубне, Россия), что около 100 кириллических букв все еще отсутствуют в Unicode. Большинство из них, по-видимому, кодируются с комбинацией акцентов, а остальные могут быть добавлены с помощью процедуры, описанной в Приложении B. Отправка новых символов стандарта Unicode.

Каждая кириллическая буква кодируется двумя байтами в utf-8. Стандартная схема сжатия для Unicode (SCSU) позволяет уменьшить это до традиционного одного байта на букву.

Я все еще занят написанием своего Unicode-HOWTO для Linux. Я добавил кириллическую раскладку клавиатуры, которая злоупотребляет транслитерацией ISO 9 в качестве метода ввода в текстовый редактор Yudit Unicode для системы X Window.

Я рекомендую вам отправлять свои комментарии по адресу [email protected]. Я благодарю Кристофера Неханива, Андреаса Прилопа, Питера Кассетту <[email protected]>, Андрея Чернова, Келда Симонсена, Борислава Стоянова, Гюнчо Скордева, Илью Винарского, Диму Володина, Кристиана Вайсгербера, Алена Кесси и Юрия Демченко за ценную информацию, которую они предоставили. .

________
Роман Чиборра
URL: http://czyborra.com/
E-mail: [email protected]

draft-winitzki-koi8c-encoding-00

 [Поиск] [txt|pdfized|bibtex] [Отслеживание] [Электронная почта] [Nits]
Версии:  00  
 Internet Draft Serge Winitzki
черновик-winitzki-koi8c-encoding-00.txt
Истекает: апрель 2002 г.
 Расширенный набор символов кириллицы
КОИ8-С
Статус этого меморандума
 Этот меморандум является Интернет-проектом и подлежит всем положениям
 Раздела 10 RFC2026.
 Интернет-черновики – это рабочие документы Интернета. Инженерная рабочая группа (IETF), ее области и ее работа
 группы. Обратите внимание, что другие группы также могут распространять рабочие
 документы в виде Internet-Drafts.
 Интернет-черновики — это проекты документов, действительные не более шести
 месяцев и могут быть обновлены, заменены или устаревшими другими
 документы в любое время. Нецелесообразно использовать
 Internet-Drafts в качестве справочного материала или цитировать их, кроме
 как «работа в процессе».
 Список текущих интернет-драфтов можно найти по адресу
 http://www.ietf.org/ietf/1id-abstracts.txt Список
 Доступ к теневым каталогам Internet-Draft можно получить по адресу
 http://www.ietf.org/shadow.html.
Автор
 Серж Виницки  Абстрактный
 Этот документ содержит информацию о кодировке символов
 KOI8-C (кириллица KOI8) предлагается для использования с русским языком (включая
 старая орфография), украинский, белорусский, сербский, македонский
 языки со специальными знаками препинания. KOI8-C совместим
 с КОИ8-Р [1] и КОИ8-У [2] в области русского, украинского
 и белорусские буквы, и дополняет их буквами для старых
 Русская орфография, югославская кириллица и
 типографские символы в позициях, совместимых с CP1251 для использования
 в устаревших приложениях.
Предлагаемое имя набора символов MIME: koi8-c
Введение
 Этот документ содержит информацию о предлагаемом новом персонаже
 кодирование KOI8-C, расширение стандартов KOI8-R и KOI8-U.
 Это расширение обеспечивает поддержку всех русских букв
 (в том числе нужных для древнерусской орфографии), а также
 Кириллические буквы, используемые в белорусском, македонском, сербском и
 украинские языки и некоторые часто используемые типографские
 символы, заимствованные из кодировки CP1251. Кодировка KOI8-C
 совместим с существующими кодировками KOI8-RU и CP1251 в
 соответствующие символы.
Мотивация
 Семейство кодировок KOI8 уже давно используется для электронных
 обмен кириллическими текстами [1,2]. Следующие соображения
 побудили автора предложить расширение KOI8. 1) Большая часть таблицы кодирования KOI8 (большая часть 0x80-0xBF
 диапазон) по историческим причинам занят символами
 псевдографика, которая не используется в современном программном обеспечении. Эти символы
 отсутствуют в большинстве реализаций шрифтов KOI8 без каких-либо последствий
 на производительность пользователей. Эти места в таблице кодирования могут быть
 используется для представления более часто используемых символов.
 2) Недавнее доминирование операционной среды «MS Windows».
 привело к широкому распространению текстовых процессоров, использующих «код
 page 1251" для отображения кириллицы. Многие интернет-документы
 таким образом преобразуются в KOI8 из CP1251 и часто включают
 некоторые типографские знаки, такие как апострофы, кавычки или
 тире, не представленные в кодировках KOI8, но оставленные без
 меняются автоматическими преобразователями. Эти типографские символы падают
 в неиспользуемой области псевдографики KOI8.
 3) Тексты в древнерусской орфографии (до 1918) содержат четыре
 Кириллические буквы не представлены ни одним из широко используемых
 Кириллические кодировки. Хотя инструменты на основе Unicode
 быть адекватным для рендеринга этих символов, текущая
 программное обеспечение в большинстве случаев не имеет необходимой поддержки. Это было бы
 удобно иметь 8-битную кодировку, представляющую старую русскую
 символов и иметь возможность размещать их непосредственно в шрифте
 карта кодирования и раскладка клавиатуры, совместимая с широким диапазоном
 текущего программного обеспечения.
Реализация
 Автор реализовал кодировку KOI8-C согласно этим
 рекомендации: (1) совместимость с символами KOI8-R и KOI8-U
 наборы, (2) совместимость с набором символов CP1251 в области
 типографские символы и югославская кириллица; (3) нужно быть
 умеет конвертировать шрифты в другие кириллические кодировки.
 Нижняя часть набора символов KOI8-C является полной копией
 ASCII в диапазоне печатных символов (0x20 -- 0x7F).
 диапазон (0x00 -- 0x1F) занят псевдографикой и другими
 редко используемые специальные символы.
 Верхняя часть набора символов KOI8-C содержит все русские,
 Белорусские и украинские буквы на позициях, определенных в KOI8-R
 и КОИ8-У; часто используемые типографские символы (кавычки,
 тире и символы валюты) и югославская кириллица как
 определяется кодировкой CP1251; и старыми русскими буквами. Большая коробка
 рисование символов из КОИ8-Р, а также некоторые математические
 символы, были удалены.
 Результирующий набор символов содержит все символы ISO 8859.-5 символов
 кроме МЯГКОГО ДЕФИСА и охватывает CP1251 кроме 5 знаков препинания
 символов (все также в CP1252).
 Веб-страница  содержит разработки автора, связанные с KOI8-C
 кодировка и тексты в древнерусской орфографии. Бесплатное растровое изображение
 адаптированы шрифты семейства Cronyx для системы X Window
 к кодировке KOI8-C, реализуя полную карту KOI8-C (256
 символов) во всех шрифтах (проект "xcyr"). Расширение
 раскладка клавиатуры, содержащая старые русские буквы, была
 предложенный. Словарь проверки орфографии для древнерусского языка
 была разработана орфография с использованием кодировки KOI8-C.
Отношение к другим усилиям
 Эта кодировка была разработана как модификация [1,2]. Ан
 независимый проект разработки шрифтов "CYR-RFX" использует
 альтернативная кодировка "КОИ8-О" с аналогичными целями
 совместимость с KOI8-R и CP1251, но не содержит
 Югославские кириллические символы. Спецификация кодовой страницы KOI8-C
 Описание всех символов верхней половины KOI8-C
 кодовая страница указана в соответствии с набором символов Unicode ISO 10646.
 (УКС).   #  0x01 U25C6 # ЧЕРНЫЙ АЛМАЗ
 0x02 U2592 # СРЕДНИЙ ОТТЕНОК
 0x03 U00D7 # ЗНАК УМНОЖЕНИЯ
 0x04 U00F7 # ЗНАК РАЗДЕЛЕНИЯ
 0x05 U2030 # ПРОМЫШЛЕННЫЙ ЗНАК
 0x06 U2248 # ПОЧТИ РАВНО
 0x07 U00B5 # ЗНАК МИКРО
 0x08 U00B1 # ЗНАК ПЛЮС-МИНУС
 0x09 U00B6 # ЗНАК НАШИВКИ
 0x0A U2021 # ДВОЙНОЙ КИНЖАЛ
 0x0B U2518 # ЧЕРТЕЖИ В КОРОБКЕ ЗАЖИГАЮТСЯ ВВЕРХ И ВЛЕВО
 0x0C U2510 # ЧЕРТЕЖИ КОРОБКИ ПОДСВЕТКА ВНИЗ И ВЛЕВО
 0x0D U250C # ЧЕРТЕЖИ В КОРОБКЕ ПОДСВЕТКА ВНИЗ И ВПРАВО
 0x0E U2514 # ЧЕРТЕЖИ ЗАЖИГАЮТСЯ ВВЕРХ И СПРАВА
 0x0F U253C # ЧЕРТЕЖИ КОРОБКИ ОСВЕЩЕНИЕ ВЕРТИКАЛЬНО И ГОРИЗОНТАЛЬНО
 0x10 UFFFD # ЗАМЕНЯЮЩИЙ СИМВОЛ
 0x11 UFFFD # ЗАМЕНЯЮЩИЙ СИМВОЛ
 0x12 U2500 # ЧЕРТЕЖИ СВЕТ ГОРИЗОНТАЛЬНЫЙ
 0x13 UFFFD # ЗАМЕНЯЮЩИЙ СИМВОЛ
 0x14 UFFFD # СИМВОЛ ЗАМЕНЫ
 0x15 U251C # ЧЕРТЕЖИ КОРОБКИ ПОДСВЕТКА ВЕРТИКАЛЬНАЯ И ПРАВАЯ
 0x16 U2524 # ЧЕРТЕЖИ КОРОБКИ ПОДСВЕТКА ВЕРТИКАЛЬНАЯ И СЛЕВА
 0x17 U2534 # ЧЕРТЕЖИ КОРОБКИ ЗАСВЕТЯТСЯ И ГОРИЗОНТАЛЬНО
 0x18 U252C # ЧЕРТЕЖИ В КОРОБКЕ СВЕТ ВНИЗ И ГОРИЗОНТАЛЬНО
 0x19U2502 # ЧЕРТЕЖИ В КОРОБКЕ СВЕТ ВЕРТИКАЛЬНЫЙ
 0x1A U2264 # МЕНЬШЕ ИЛИ РАВНО
 0x1B U2265 # БОЛЬШЕ ИЛИ РАВНО
 0x1C U03C0 # СТРОЧНАЯ ГРЕЧЕСКАЯ БУКВА ПИ
 0x1D U2260 # НЕ РАВНО
 0x1E U00A4 # ЗНАК ВАЛЮТЫ
 0x1F U00B2 # НАДПИСЬ ДВА
 0x20 U0020 # ПРОБЕЛ
 0x21 U0021 # ВОСКЛИЦАТЕЛЬНЫЙ ЗНАК
 0x22 U0022 # КАвычки
 0x23 U0023 # ЗНАК НОМЕРА
 0x24 U0024 # ЗНАК ДОЛЛАРА
 0x25 U0025 # ЗНАК ПРОЦЕНТА
 0x26 U0026 # АМПЕРСАНД
 0x27 U0027 # АПОСТРОФ
 0x28 U0028 # ЛЕВАЯ СКОБКА
 0x29U0029 # ПРАВАЯ СКОБКА
 0x2A U002A # ЗВЕЗДОЧКА
 0x2B U002B # ЗНАК ПЛЮС
 0x2C U002C # ЗАПЯТАЯ
 0x2D U002D # ДЕФИС-МИНУС
 0x2E U002E # ПОЛНАЯ СТОП
 0x2F U002F # СОЛИДУС
 0x30 U0030 # ЦИФРА НОЛЬ
 0x31 U0031 # ЦИФРА ОДИНА
 0x32 U0032 # ВТОРАЯ ЦИФРА
 0x33 U0033 # ЦИФРА ТРИ
 0x34 U0034 # ЦИФРА ЧЕТЫРЕ
 0x35 U0035 # ПЯТАЯ ЦИФРА
 0x36 U0036 # ЦИФРА ШЕСТЬ
 0x37 U0037 # СЕДЬМАЯ ЦИФРА
 0x38 U0038 # ВОСЕМЬ ЦИФРА
 0x39U0039 # ЦИФРА ДЕВЯТЬ
 0x3A U003A # ТОЛСТАЯ
 0x3B U003B # ТОЧКА С ЗАПЯТОЙ
 0x3C U003C # ЗНАК МЕНЬШЕ
 0x3D U003D # ЗНАК РАВНО
 0x3E U003E # ЗНАК БОЛЬШЕ
 0x3F U003F # ВОПРОСИТЕЛЬНЫЙ ЗНАК
 0x40 U0040 # КОММЕРЧЕСКОЕ В
 0x41 U0041 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА A
 0x42 U0042 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА B
 0x43 U0043 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА C
 0x44 U0044 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА D
 0x45 U0045 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА E
 0x46 U0046 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА F
 0x47 U0047 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА G
 0x48 U0048 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА H
 0x49U0049 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА I
 0x4A U004A # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА J
 0x4B U004B # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА K
 0x4C U004C # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА L
 0x4D U004D # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА M
 0x4E U004E # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА N
 0x4F U004F # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА O
 0x50 U0050 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА P
 0x51 U0051 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА Q
 0x52 U0052 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА R
 0x53 U0053 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА S
 0x54 U0054 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА T
 0x55 U0055 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА U
 0x56 U0056 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА V
 0x57 U0057 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА W
 0x58 U0058 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА X
 0x59U0059 # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА Y
 0x5A U005A # ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА Z
 0x5B U005B # ЛЕВАЯ КВАДРАТНАЯ СКОБКА
 0x5C U005C # ОБРАТНЫЙ СОЛИДУС
 0x5D U005D # ПРАВАЯ КВАДРАТНАЯ СКОБКА
 0x5E U005E # ЦИРКУМФЛЕКС АКЦЕНТ
 0x5F U005F # НИЗКАЯ ЛИНИЯ
 0x60 U0060 # МОГИЛЬНЫЙ АКЦЕНТ
 0x61 U0061 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА A
 0x62 U0062 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА B
 0x63 U0063 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА C
 0x64 U0064 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА D
 0x65 U0065 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА E
 0x66 U0066 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА F
 0x67 U0067 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА G
 0x68 U0068 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА H
 0x69U0069 # ЛАТИНСКАЯ СТРОЧНАЯ БУКВА I
 0x6A U006A # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА J
 0x6B U006B # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА K
 0x6C U006C # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА L
 0x6D U006D # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА M
 0x6E U006E # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА N
 0x6F U006F # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА O
 0x70 U0070 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА P
 0x71 U0071 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА Q
 0x72 U0072 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА R
 0x73 U0073 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА S
 0x74 U0074 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА T
 0x75 U0075 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА U
 0x76 U0076 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА V
 0x77 U0077 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА W
 0x78 U0078 # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА X
 0x79U0079 # ЛАТИНСКАЯ СТРОЧНАЯ БУКВА Y
 0x7A U007A # СТРОЧНАЯ ЛАТИНСКАЯ БУКВА Z
 0x7B U007B # ЛЕВАЯ ФИГУРНАЯ СКОБКА
 0x7C U007C # ВЕРТИКАЛЬНАЯ ЛИНИЯ
 0x7D U007D # ПРАВАЯ ФИГУРНАЯ СКОБКА
 0x7E U007E # ТИЛЬДА
 0x7F U00AC # НЕ ЗНАК
 0x80 U0402 # ЗАГЛАВНАЯ БУКВА DJE
 0x81 U0403 # ЗАГЛАВНАЯ БУКВА GJE
 0x82 U00B8 # СЕДИЛЬЯ
 0x83 U0453 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА GJE
 0x84 U201E # ДВОЙНАЯ МЛАДШАЯ-9 КАВАТЫ
 0x85 U2026 # ГОРИЗОНТАЛЬНЫЙ ЭЛЛИПСИС
 0x86 U2020 # КИНЖАЛ
 0x87 U00A7 # ЗНАК СЕКЦИИ
 0x88 U20AC # ЗНАК ЕВРО
 0x89U00A8 # ДИЭРЕЗИС
 0x8A U0409 # ЗАГЛАВНАЯ БУКВА LJE
 0x8B U2039 # ОДИНОЧНЫЙ УГОЛ, УКАЗЫВАЮЩИЙ ВЛЕВО, КАВАТЫ
 0x8C U040A # ЗАГЛАВНАЯ БУКВА NJE
 0x8D U040C # ЗАГЛАВНАЯ БУКВА KJE
 0x8E U040B # ЗАГЛАВНАЯ БУКВА ТШЕ
 0x8F U040F # ЗАГЛАВНАЯ БУКВА ДЖЕ
 0x90 U0452 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА DJE
 0x91 U2018 # ЛЕВАЯ ОДИНАРНАЯ КАВАТЫ
 0x92 U2019 # ПРАВАЯ ОДИНАРНАЯ КАВАТЫ
 0x93 U201C # ЛЕВАЯ ДВОЙНАЯ КАВАТЫ
 0x94 U201D # ПРАВАЯ ДВОЙНАЯ КАПОТА
 0x95 U2022 # ПУЛЯ
 0x96 U2013 # В ТИРЕ
 0x97 U2014 # ЭМ ТИРЕ
 0x98 U00A3 # ЗНАК ФУНТА
 0x99 U00B7 # СРЕДНЯЯ ТОЧКА
 0x9A U0459 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА LJE
 0x9B U203A # ОДИНОЧНЫЙ УГОЛ НАПРАВЛЕНИЯ ВПРАВО КАВАТЫ
 0x9C U045A # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА NJE
 0x9D U045C # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА KJE
 0x9E U045B # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА ЦШЕ
 0x9F U045F # СТРОЧНАЯ БУКВА ДЖЕ
 0xA0 U00A0 # НЕРАЗРЫВНЫЙ ПРОБЕЛ
 0xA1 U0475 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА ИЖИЦА
 0xA2 U0463 # СТРОЧНАЯ БУКВА ЯТЬ
 0xA3 U0451 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА IO
 0xA4 U0454 # СТРОЧНАЯ КИРИЛЛИЧНАЯ УКРАИНСКАЯ БУКВА IE
 0xA5 U0455 # СТРОЧНАЯ БУКВА ДЗЕ
 0xA6 U0456 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БЕЛОРУССКАЯ-УКРАИНСКАЯ БУКВА I
 0xA7 U0457 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА ЙИ
 0xA8 U0458 # СТРОЧНАЯ БУКВА JE
 0xA9U00AE # ЗАРЕГИСТРИРОВАННЫЙ ЗНАК
 0xAA U2122 # ЗНАК ТОРГОВОЙ МАРКИ
 0xAB U00AB # НАПРАВЛЯЮЩАЯ ВЛЕВО ДВОЙНАЯ УГЛОВАЯ КАВАТЫ
 0xAC U0473 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА ФИТА
 0xAD U0491 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА GHE С ВВЕРХОМ
 0xAE U045E # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА КОРОТКАЯ U
 0xAF U00B4 # ОСТРЫЙ АКЦЕНТ
 0xB0 U00B0 # ЗНАК СТЕПЕНИ
 0xB1 U0474 # ЗАГЛАВНАЯ БУКВА ИЖИЦА
 0xB2 U0462 ​​# ЗАГЛАВНАЯ БУКВА ЯТЬ
 0xB3 U0401 # ЗАГЛАВНАЯ БУКВА IO
 0xB4 U0404 # ЗАГЛАВНАЯ БУКВА УКРАИНСКИЙ IE
 0xB5 U0405 # ЗАГЛАВНАЯ БУКВА ДЗЕ
 0xB6 U0406 # ЗАГЛАВНАЯ БУКВА БЕЛОРУССКИЙ-УКРАИНСКИЙ I
 0xB7 U0407 # ЗАГЛАВНАЯ БУКВА YI
 0xB8 U0408 # ЗАГЛАВНАЯ БУКВА JE
 0xB9U2116 # ЗНАК ЦИФРЫ
 0xBA U00A2 # ЗНАК ЦЕНТА
 0xBB U00BB # ДВУХУГОЛЬНАЯ КАВАЧКА, УКАЗЫВАЮЩАЯ ВПРАВО
 0xBC U0472 # ЗАГЛАВНАЯ БУКВА ФИТА
 0xBD U0490 # ЗАГЛАВНАЯ БУКВА GHE С ВВЕРХОМ
 0xBE U040E # ЗАГЛАВНАЯ БУКВА КОРОТКАЯ U
 0xBF U00A9 # ЗНАК АВТОРСКОГО ПРАВА
 0xC0 U044E # СТРОЧНАЯ БУКВА Ю
 0xC1 U0430 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА A
 0xC2 U0431 # СТРОЧНАЯ БУКВА BE
 0xC3 U0446 # СТРОЧНАЯ БУКВА ТСЕ
 0xC4 U0434 # СТРОЧНАЯ БУКВА DE
 0xC5 U0435 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА IE
 0xC6 U0444 # СТРОЧНАЯ БУКВА EF
 0xC7 U0433 # СТРОЧНАЯ БУКВА GHE
 0xC8 U0445 # СТРОЧНАЯ БУКВА HA
 0xC9U0438 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА I
 0xCA U0439 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА КОРОТКАЯ I
 0xCB U043A # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА КА
 0xCC U043B # СТРОЧНАЯ БУКВА EL
 0xCD U043C # СТРОЧНАЯ БУКВА EM
 0xCE U043D # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА EN
 0xCF U043E # СТРОЧНАЯ БУКВА O в кириллице
 0xD0 U043F # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА PE
 0xD1 U044F # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА Я
 0xD2 U0440 # СТРОЧНАЯ БУКВА ER
 0xD3 U0441 # СТРОЧНАЯ БУКВА ES
 0xD4 U0442 # СТРОЧНАЯ БУКВА TE
 0xD5 U0443 # СТРОЧНАЯ БУКВА U
 0xD6 U0436 # СТРОЧНАЯ БУКВА ЖЕ
 0xD7 U0432 # СТРОЧНАЯ БУКВА ВЕ
 0xD8 U044C # МЯГКИЙ ЗНАК СТРОЧНОЙ БУКВЫ КИРИЛЛИЦЫ
 0xD9U044B # СТРОЧНАЯ БУКВА ЕРУ
 0xDA U0437 # СТРОЧНАЯ БУКВА ZE
 0xDB U0448 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА ША
 0xDC U044D # СТРОЧНАЯ БУКВА Е
 0xDD U0449 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА ЩА
 0xDE U0447 # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА ЧЕ
 0xDF U044A # СТРОЧНАЯ КИРИЛЛИЧНАЯ БУКВА ЖЕСТКИЙ ЗНАК
 0xE0 U042E # ЗАГЛАВНАЯ БУКВА Ю
 0xE1 U0410 # ЗАГЛАВНАЯ БУКВА A
 0xE2 U0411 # ЗАГЛАВНАЯ БУКВА BE
 0xE3 U0426 # ЗАГЛАВНАЯ БУКВА TSE
 0xE4 U0414 # ЗАГЛАВНАЯ БУКВА DE
 0xE5 U0415 # ЗАГЛАВНАЯ БУКВА IE
 0xE6 U0424 # ЗАГЛАВНАЯ БУКВА EF
 0xE7 U0413 # ЗАГЛАВНАЯ БУКВА GHE
 0xE8 U0425 # ЗАГЛАВНАЯ БУКВА HA
 0xE9U0418 # ЗАГЛАВНАЯ БУКВА I
 0xEA U0419 # ЗАГЛАВНАЯ БУКВА КОРОТКАЯ I
 0xEB U041A # ЗАГЛАВНАЯ БУКВА КА
 0xEC U041B # ЗАГЛАВНАЯ БУКВА EL
 0xED U041C # ЗАГЛАВНАЯ БУКВА EM
 0xEE U041D # ЗАГЛАВНАЯ БУКВА EN
 0xEF U041E # ЗАГЛАВНАЯ БУКВА О
 0xF0 U041F # ЗАГЛАВНАЯ БУКВА PE
 0xF1 U042F # ЗАГЛАВНАЯ БУКВА Я
 0xF2 U0420 # ЗАГЛАВНАЯ БУКВА ER
 0xF3 U0421 # ЗАГЛАВНАЯ БУКВА ES
 0xF4 U0422 # ЗАГЛАВНАЯ БУКВА TE
 0xF5 U0423 # ЗАГЛАВНАЯ БУКВА U
 0xF6 U0416 # ЗАГЛАВНАЯ БУКВА ЖЕ
 0xF7 U0412 ​​# ЗАГЛАВНАЯ БУКВА VE
 0xF8 U042C # МЯГКИЙ ЗНАК ЗАГЛАВНОЙ КИРИЛЛИЧЕСКОЙ БУКВЫ
 0xF9U042B # ЗАГЛАВНАЯ БУКВА ЕРУ
 0xFA U0417 # ЗАГЛАВНАЯ БУКВА ZE
 0xFB U0428 # ЗАГЛАВНАЯ БУКВА SHA
 0xFC U042D # ЗАГЛАВНАЯ БУКВА E
 0xFD U0429 # ЗАГЛАВНАЯ БУКВА ЩА
 0xFE U0427 # ЗАГЛАВНАЯ БУКВА ЧЕ
 0xFF U042A # ТВЕРДЫЙ ЗНАК ЗАГЛАВНОЙ БУКВЫ КИРИЛЛИЦЫ
Вопросы безопасности
 Этот меморандум не вызывает никаких известных проблем с безопасностью.
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *