Может кто-нибудь объяснить мне, как кодировать строку «®» в base64 (я просто выбрал любой не-ASCII символ для примера)? Этот символ представляет код 174 или 10101110 в двоичном виде.
В результате получается "wq4 =" (получил это, проверив два разных сайта, которые выполняют кодирование base64 онлайн).
Я понимаю, как Система кодирования base64 работает. Для символов ASCII я могу получить правильные результаты, но с любым не-ASCII-символом результат никогда не совпадет.
Я пробовал два способа:
- Использование непосредственно двоичного файла для этого символа (10101110) и разделив его на 2 порции по 6 битов, которые у меня есть: 101011 и 100000. Base64 они соответствуют "rg"
- Сначала преобразуем 10101110 в UTF-8, поэтому у меня есть 2 байта: 11010101 и 10110000. Затем я смешиваю эти два байта и разделяю их на куски по 6 битов: 110101 011011 000000. Базовому значению base64 они соответствуют «1 бА».
Я понятия не имею, как поступить с символами, отличными от ASCII. Делая те же вычисления с любым символом ASCII, просто работает.
Кто-нибудь знает, что я делаю неправильно?