Сейчас будет немного душный пост, но меня задолбало.
Кириллица в SMS — ~70 символов. В Meshtastic пакет — ~100 символов. А транслитом — уже 160. Почему? Потому что один русский символ в UTF-8 весит 2 байта, а латинский — 1.
Решил разобраться. Полез в стандарты, кодировки, частотный анализ. Прогнал через скрипт "Войну и мир", Пелевина, "Метро 2033", Духless — 5 миллионов символов. Нашёл закономерности: 30 самых частых слогов (то, ст, на, но, не, по...) покрывают огромную долю русского текста.
Сделал свою кодировку. Один байт = одна буква ИЛИ целый слог. 33 буквы + 165 частых слогов и слов — всё в 256 значениях одного байта.
Результат:
📦 "Война и мир" (txt) — 2.7 МБ → 928 КБ. В 3 раза меньше.
📦 Это БЕЗ архиватора. Просто другая кодировка.
📦 Если сверху zip — 518 КБ. В 5 раз меньше оригинала.
Для сравнения: zip без моей кодировки жмёт до 700 КБ. То есть моя таблица + zip = лучше чем просто zip.
Что это даёт на практике:
— SMS: не 70, а ~200 кириллических символов
— Meshtastic: не 100, а ~330 символов в пакете
— И это читается на лету, без распаковки. Байт пришёл — символ на экране.
Ставлю это на свой пейджер. Минимальный канал связи — максимум информации.
#monstrix #meshtastic #кодировка #diy
Post #416
2.85K

- 🔥 51
- ❤ 28
- 👍 9
- 😁 2