Церковно-славянская кодировка

До появления стандарта Unicode для работы с текстами использовались 8-ми битные кодировки, в которых для представления каждого отдельного символа отводился один байт, что позволяло кодировать до 255 символов. Стандарт ASCII регламентировал использование кодов первой половины байта (7 бит, коды от 0 до 127): цифры, строчные и заглавные латинские буквы, знаки. Коды второй половины байта (от 128 до 255) использовались для кодирования национальных алфавитов (кодовые страницы). Такая кодировка была проста в использовании, а текст эффективно расходовал ограниченную память. Однако 8-ми битная кодировка имела ряд существенных недостатков - в первую очередь, ограниченный диапазон кодов, поэтому была непригодна для кодирования иероглифов и других языков с большим количеством букв. Также в тексте можно было использовать кроме латинских букв только один национальный алфавит. А для русского языка различными международными организациями и компаниями использовались различные системы кодировок, что создавало определенные неудобства: KOI8-R, ISO 8859-5, CP866, Windows 1251, MacCyrillic.

Стандарт Unicode для кодирования символов взял за основу 16 бит, что позволяет кодировать более 65 тысяч знаков - этого хватило для всех современных и большинства древних языков. Сейчас Unicode использует уже 32 бит, что дает 4 миллиарда значений - этого хватит для различных вариантов начертания символов всех древних языков. Для экономии памяти, чтобы не выделять для каждого символа всегда 4 байта, используется стандарт кодирования символов UTF-8 переменной длинны (от 1 до 4 байт), совместимый с 7-битной кодировкой ASCII и Unicode. В настоящее время большинство типографий и интернет-ресурсов несмотря на развитие Unicode продолжают использовать древние (по компьютерным меркам) нестандартные 8-битные славянские шрифты, несовместимые как между собой, так и со стандартом Unicode.

Первые версии Unicode не учитывали всех особенностей церковно-славянского языка, но позже были добавлены недостающие славянские буквы, а также надстрочные буквы для сокращенной записи слов. В большинстве современных шрифтов отсутствует полный набор старославянских кириллических знаков. Хотя некоторые шрифты и позволяют отображать церковно-славянские тексты, но они малопригодны из-за плохого позиционирования надстрочных знаков над славянскими буквами, различными по высоте и ширине. Для правильного отображения церковно-славянских текстов желательно разрабатывать шрифты со всеми возможными комбинациями букв и надстрочных знаков, но, к сожалению, Unicode не предусматривает отдельного диапазона для таких лигатур, как, например, имеется для древнегреческого языка. Такое упущение Unicode можно компенсировать возможностями OpenType шрифтов, где любые комбинации букв и знаков при отображении текста могут быть автоматически скорректированы или заменены на отдельную лигатуру программой-скриптом внутри шрифта.

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

Уже давно назрела острая необходимость в координации действий всего сообщества разработчиков славянских шрифтов для выработки общих правил и рекомендаций по переходу на использование единой кодировки Unicode. Для старославянского языка с большим разнообразием вариантов начертания букв и сокращения слов в разных рукописях следует объединить усилия для систематизации накопленной информации и внесения дополнений в новые версии Unicode. Для церковно-славянского языка с единообразным начертанием букв и четкими правилами сокращения слов лучшим решением было бы проработать все варианты сочетания букв и надстрочных знаков и выделить для церковно-славянского языка новый отдельный диапазон кодов в Unicode, как это сделано для древнегреческого языка.

Более подробная информация, а также популярные славянские шрифты и макрос для набора славянских текстов доступны на сайте Ірмологїй. Однако представленная на сайте информация за 20 лет заметно устарела и уже не во всем актуальна: 8-ми битные шрифты и кодовые страницы уже в прошлом, появились дополнительные кириллические диапазоны Unicode, современные текстовые редакторы и интернет-браузеры корректно отображают надстрочные знаки и все славянские буквы.

Текущая версия Unicode предлагает:

Церковно-славянские буквы:

буквыназваниезвуккоды буквнадстрочный
вариант
А аа̓́зъ[а]0410 04302DF6
Б ббꙋ́ки[б]0411 04312DE0
В ввѣ́ди[в]0412 04322DE1
Г гглаго́ль[г]0413 04332DE2
Д ддобро̀[д]0414 04342DE3
Е є еє̓́сть[э]0415 0454 04352DF7
Ж жживѣ́те[ж]0416 04362DE4
Ѕ ѕѕѣлѡ̀[з]0405 0455
З зземлѧ̀0417 04372DE5
И ии̓́же[и]0418 0438A675
І і їи̓̀0406 0456 0457A676
К кка́кѡ[к]041A 043A2DE6
Л ллю́ди[л]041B 043B2DE7
М ммы́слѣте[м]041C 043C2DE8
Н нна́шъ[н]041D 043D2DE9
Ѻ ѻ оѻ̓́нъ[о]047A 047B 043E2DEA
Ѡ ѡѡ̓ме́га0460 0461A67B
Ѽ ѽ047C 047D
Ꙍ ꙍA64C A64D
Ѿ ѿѿ[от]047E 047F
П ппоко́й[п]041F 043F2DEB
Р ррцы̀[р]0420 04402DEC
С ссло́во[с]0421 04422DED
Т ттве́рдо[т]0422 04422DEE
Ѹ ѹѹ̓́къ[у]0478 0479A677
Ꙋ ꙋA64A A64B2DF9
Ф ффе́ртъ[ф]0424 0444A69E
Х ххе́ръ[х]0425 04452DEF
Ц ццы̀[ц]0426 04462DF0
Ч чче́рвь[ч]0427 04472DF1
Ш шша̀[ш]0428 04482DF2
Щ щща̀[щ]0429 04492DF3
Ъ ъє̓́ръ[-]042A 044AA678
Ы ыє̓ры̀[ъи]042B 044BA679
Ь ьє̓́рь[-]042C 044CA67A
Ѣ ѣꙗ̓́ть[е]0462 04632DFA
Ю юю̓̀[йу]042E 044E2DFB
Ꙗ ꙗꙗ̓̀[йа]A656 A6572DFC
Ѧ ѧю̓́съ0466 04672DFD
Ѯ ѯѯѝ[кс]046E 046F
Ѱ ѱѱѝ[пс]0470 0471
Ѳ ѳѳита̀[ф]0472 04732DF4
Ѵ ѵѵ̓́жица[в]0474 0475
Ѷ ѷ[и]0476 0477

Старославянские буквы:

буквыназваниезвуккоды буквнадстрочный
вариант
Ꙉ ꙉгервь[г]A648 A649
Ꙁ ꙁземля[з]A640 A641
Ү үчервь[ч]
Ꙑ ꙑеры[ъи]A650 A651
Ѥ ѥйотированная Е[йе]0464 0465A69F
Ѩ ѩюс малый йотированный[йэ]0468 0469
Ѫ ѫюс большой[о]046A 046B2DFE
Ѭ ѭюс большой йотированный[йо]046C 046D2DFF

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

Надстрочные знаки:

знакназваниеварианты
кодов
а́острое ударение0301
а̀тупое ударение0300
а̑облеченное ударение0311, 0484
а̓придыхание0313, 0486
а҃титло0483, A66F
а҇покрытие0303, 0487
а͠а0360
а̾паерок033E, A67D
ӑкавыка0306, A67C

Примечание: для надстрочных знаков для заглавных букв с большей высотой нет отдельных кодов, поэтому необходимо предусмотреть для них отдельные лигатуры в шрифте и подстановку в программном коде OpenType.

Дополнительные знаки:

знакназваниекод
҂тысяча0482
кавыкаA67E
звездочкаA673
🕀знаки
типикона
1F540
🕁1F541
🕂1F542
🕃1F543
🕄1F544
🕅1F545