Добавить в корзинуПозвонить
Найти в Дзене

Сейчас будет немного душный пост, но меня задолбало

Кириллица в 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 символов в пакете — И это читается на ле

Сейчас будет немного душный пост, но меня задолбало.

Кириллица в 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