Привет. В Linux есть утилита basenc, которая входит в состав пакета coreutils. С помощью неё можно конвертировать данные в двоичный формат. Это который 00110010.

Видел на днях, как люди упарывались и писали свои велосипеды, банально не зная о существовании этой утилиты и её возможностях.

А всё просто, давай закодируем название деревни:

echo 'пиздачосово' | basenc -w16 --base2msbf

По итогу получаем набор 0 и 1. Ключ -w16 я указываю, чтобы выводить по 16 символов в строке. Для удобства. Так как русские символы кодируются двумя байтами.

Вывод получился таким:

1101000010111111
1101000010111000
1101000010110111
1101000010110100
1101000010110000
1101000110000111
1101000010111110
1101000110000001
1101000010111110
1101000010110010
1101000010111110
00001010

А почему в последней строке какой-то обрубок?

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Это не обрубок, это 8 бит! И эти 8 бит равны символу новой строки, который закодирован одним байтом, о чём нам говорит левый бит первого и единственного октета (00001010).

А декодируется всё это безобразие так:

str="1101000010111111110100001011100011010000101101111101000010110100110100001011000011010001100001111101000010111110110100011000000111010000101111101101000010110010110100001011111000001010"

echo $str | basenc -d --base2msbf

Просто указываем ключ -d — и вуаля!

Если тема интересна, можешь почитать более подробно про кодирование UTF-8 здесь.

Вага-вага!

Сегодня чуть позже (16:00 МСК) залетит ещё один партнёрский пост, но это будет не просто рекламная интеграция.

Ниже я сделаю кнопку (в 16:02 МСК). Нажав на неё, ты сможешь выиграть 1 бесплатный купон на неплохую онлайн-конфу. Всего будет 3 таких купона. Всю эту кухню контролирую лично я, поэтому наёба тут нет.

А на следующей неделе будет ещё одна движуха, но там уже более интересная и интерактивная, с денежными призами и облачными серверами, вчера в чатике подробности озвучивал.

Короче, если интересно, не пропусти. Давай, хорошего дня!