← На заглавную страницу базы знаний проекта Д
Проблема 000003 (kb000003): Кодировка русского универсального кода
§ 1. Описание проблемы
Разрабатывая операционную систему Д я столкнулся с такими проблемами как кодовые страницы. Для каждого языка в некоторых операционных системах нужна своя старница. Более того, для некоторых языков, нужно несколько страниц и всё из-за отсутствия царя в голове, нежелания стандартизировать.
В сложивщейся ситуации виноваты те, кто недальновидно решил сделать длину байта равной 8 битам, в которве не влезает всё множество букв, придуманное человечеством. Однако сейчас не следует затрагивать тему увеличения размера байта, потому что не изобретены ещё соостветствующие ЭВМ.
С другой стороны существуют универсальные кодовые таблицы. Они устронеы так: одна буква занимает 2 или более байт, а есть ещё утф8. Такой путь кажется более хорошим и позволяет использовать текущее АО (аппаратное обеспечение) для нужд Д-ОС.
Поэтому и была разработана Русская Универсальная Кодовая Система.
§ 2. Идея РУКС
Кодовая система состоит из 2 частей. Первая индексирована байтами с номиналами 0..131 и содержит русские буквы, цифры и прочие символы первой необходимости. Вторая половина (байты 132..255) является ссылками на другие, вспомагательные таблицы символов.
Первая часть полностью представлена с помощью нижеследующей таблицы:
Таблица 1. Первая часть кодировки
— 000 — |
Код | Чар | Код | Чар | Код | Чар | Код | Чар | Код | Чар | Код | Чар | Код | Чар | Код | Чар |
00 | 0 | 01 | 1 | 02 | 2 | 03 | 3 | 04 | 4 | 05 | 5 | 06 | 6 | 07 | 7 |
08 | 8 | 09 | 9 | 10 | 0 | 11 | А | 12 | Б | 13 | В | 14 | Г | 15 | Д |
16 | Е | 17 | Ё | 18 | Ж | 19 | З | 20 | И | 21 | Й | 22 | К | 23 | Л |
24 | М | 25 | Н | 26 | О | 27 | П | 28 | Р | 29 | С | 30 | Т | 31 | У |
32 | Ф | 33 | Х | 34 | Ц | 35 | Ч | 36 | Ш | 37 | Щ | 38 | Ъ | 39 | Ы |
40 | Ь | 41 | Э | 42 | Ю | 43 | Я | 44 | а | 45 | б | 46 | в | 47 | г |
48 | д | 49 | е | 50 | ё | 51 | ж | 52 | з | 53 | и | 54 | й | 55 | к |
56 | л | 57 | м | 58 | н | 59 | о | 60 | п | 61 | р | 62 | с | 63 | т |
64 | у | 65 | ф | 66 | х | 67 | ц | 68 | ч | 69 | ш | 70 | щ | 71 | ъ |
72 | ы | 73 | ь | 74 | э | 75 | ю | 76 | я | 77 | . | 78 | , | 79 | ; |
80 | : | 81 | + | 82 | - | 83 | · | 84 | ÷ | 85 | = | 85 | × | 86 | ? |
87 | ! | 88 | § | 89 | ( | 90 | ) | 91 | [ | 92 | ] | 93 | { | 94 | } |
95 | < | 96 | > | 97 | № | 98 | \ | 99 |
— 100 — |
Код | Чар | Код | Чар | Код | Чар | Код | Чар | Код | Чар | Код | Чар | Код | Чар | Код | Чар |
00 | ← | 01 | ↑ | 02 | → | 03 | ↓ | 04 | ↔ | 05 | ↵ | 06 | ⇐ | 07 | ⇒ |
08 | % | 09 | & | 10 | ' | 11 | * | 12 | / | 13 | @ | 14 | ^ | 15 | _ |
16 | ` | 17 | ~ | 18 | | | 19 | " | 20 | ° | 21 | ± | 22 | # | 23 | ∞ |
24 | “ | 25 | ” | 26 | „ | 27 | ‘ | 28 | ’ | 29 | ‚ | 30 | « | 31 | » |
Вторая часть содержит таблицы. Каждая из таблиц имеет 255 элементов. Таким образом элемент из второй таблицы описывается 2-мя байтами. Далее представлен перечень таблиц второй части кодировки РУКС:
- Таблица математических символов;
- Таблица символов логических;
- Таблица для ASCII-рисункoв;
- Таблица символов отдельных государств (звезда Давида, Православный крест, и арабский полумесяц);
- Специальная хакерская таблица;
- Лигатуры, для мнемокодов языка ассемблера (как воторого оффициального языка программирования [ведь первый оффициальный язык программирования — это конечно язык Д]);
- Лигатуры для зарезервированных слов языка Д. Часть I;
- Лигатуры для зарезервированных слов языка Д. Часть II;
- Лигатуры для зарезервированных слов языка Д. Часть III;
- Лигатуры для зарезервированных слов языка Д. Часть IV;
- Для нейтрального языка;
- Для болгарского языка;
- Для китайского языка. Часть I;
- Для китайского языка. Часть II;
- Для кроатского языка;
- Для чешского языка;
- Для датского языка;
- Для немецкого языка;
- Для английского языка;
- Для финского языка;
- Для французского языка;
- Для греческого языка;
- Для исландского языка;
- Для итальянского языка;
- Для норвежского языка;
- Для польского языка;
- Для португальского языка;
- Для римского языка;
- Для словатского языка;
- Для словенского языка;
- Для испанского языка;
- Для шведского языка;
- Для тайского языка;
- Для турецкого языка;
- На благотворительные нужды;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Зарезервированно на будущее;
- Свободно для любого использования;
§ 3. Вывод
Нужно как можно скорее вводить эту систему универсального русского кода в жизнь. Она — ключ к избавлению от избыточности и байтов в русских текстах.