Символ руна для текста

Открой, как руны превращают обычный текст в магический шифр — выбирай символ, который расскажет твою историю

Дата публикации:


Слово «руна» сегодня употребляется в двух ключевых контекстах:

  • Историко-культурный: древние германские или славянские знаки письма (Старший Футарк, Славянские руны).
  • Технический: единица кодирования Unicode, обозначаемая в языке Go типом rune (псевдоним int32).

Статья покажет, как эти смыслы пересекаются и почему важно различать «символ на экране» и «байты в памяти».


Руны в Unicode: таблица символов 16A0–16FF

1.1 Диапазон Runic

Unicode выделил блок U+16A0–U+16FF под рунические символы. В него входят:

  • ᚠ U+16A0 (Fehu), скандинавская руна «скот/богатство».
  • ᛋ U+16CB (Sigel/Sowilo) — образец из источника SYMBL.
  • ᛃ U+16C3 (Jeran) — руна «урожай/год».
Часто запрашиваемые руны
Символ Unicode Название Значение
ᛋ U+16CB Long-Branch-Sol S Солнце, сила.
ᛃ U+16C3 Jeran J Год, урожай.
ᚢ U+16A2 Uruz Бык, энергия.

1.2 Как ввести руну на клавиатуре

В Windows:

  1. Включите NumPad.
  2. Удерживайте Alt, наберите десятичный код на NumPad. Например, Alt+5835 даст ᛋ.

В macOS/Linux:

  • Используйте встроенные Unicode-редакторы или настройте Shift+Ctrl+u + шестнадцатеричный код.

Руна в языке Go: строки, байты и rune

2.1 Почему 1 руна ≠ на экране

На форуме r/golang в 2021 году подчеркивали:

«Одна руна соответствует одному кодовому пункту Unicode, но не обязательно одному видимому графическому символу. Комбинирующие марки и эмодзи-звёздочки могут занимать несколько кодовых пунктов.»

2.2 Практика в Go

package main
import (
 "fmt"
 "unicode/utf8"
)

func main {
 s := "ᛋᛃGo!" // 2 руны + 2 ASCII
 fmt.Println(len(s)) // 9 байт
 fmt.Println(utf8.RuneCountInString(s)) // 4 руны
}

2.3 Пакет strings и map[rune]int

  • strings.Map и strings.ToLower работают рунно-ориентированно, поэтому корректно обрабатывают Unicode.
  • Хеш-таблицы вида map[rune]int позволяют считать частоты символов без потери многобайтовых знаков.

Стилизация текста: «Славянские руны для ника»

В онлайн-играх и Discord-псевдонимах популярны «славянские руны», на деле это обычные Unicode-символы блока Runic, а не отдельный шрифт. Пример преобразования:

Обычный ник: Slava

Рунизированный ник: ᛊᛚᚨᚹᚨ

Такой «шрифт» отображается в любом браузере без установки дополнительных файлов, потому что символы берутся из стандартной таблицы Unicode.


Венгерские руны и расширение Unicode

Недавно в Unicode 14.0 добавили блок Old Hungarian (U+10C80–U+10CFF), включая заглавную руну 𐲀 U+10CAA. Это позволяет:

  • Использовать венгерские руны в веб-документах.
  • Создавать образовательные материалы и шрифтовые наборы без изображений.

Чек-лист разработчика и верстальщика

  1. Проверяй длину строки через utf8.RuneCountInString, если в тексте могут быть не-ASCII символы.
  2. Не путай кодовый пункт и графему. Эмодзи 👨‍👩‍👧‍👦 = 7 кодовых пунктов, но 1 графема.
  3. Для ников и логотипов используй блок Runic и Old Hungarian, но убедись, что целевая аудитория имеет шрифты с этими символами.
  4. Тестируй в разных ОС: iOS и Android могут отображать руны по-разному.

Слово «руна» в 2026 году — это и исторический артефакт, и технический термин. Unicode даёт нам возможность писать древними знаками без погружения в графические редакторы, а язык Go защищает нас от ошибок при работе с многобайтовыми символами; Главное правило: различать байты, руны и графемы, особенно когда речь идёт о пользовательских именах, паролях или индексации текста.

Быстрая ссылка: вся таблица Unicode доступна на SYMBL ‿ — там же можно скопировать любую руну одним кликом.