JavaScript: декодирование строки в Base64

Вообще штатно есть функции для кодирования/декодирования: atob / btoa. Но один нюанс: если строчку вида «Hello world!» они кодирую-декодируют легко, то с бинарными файлами выйдет ой. Не, они конечно тоже что-то сделают, но с «тихой ошибкой» — т.е. результат будет, но не верен. Попался так, когда с сервера передавал файл в base64 на клиент javascript, декодировал его примерно так:

А в результате, с виду вроде бы валидный файл, экселем открываться отказался. А всё потому, что atob не работает со строками в Uicode. Потому обычно используют следующие обертки для кодирования-декодирования:

Картинка из base64

Довольно типичная задача — нужда чтобы изображение полученное в виде данных при помощи например запроса ajax (картинка из base64), отобразилась на веб странице. Решение простое, и даже не требует никаких перекодировок, так как, движёк браузера уже позволяет отображать такие картинки, достаточно указать ему формат данных источника. Например так:

Картинка из base64

Ну а если задачу рассматривать в комплексном виде (картинка из base64), то готовый код с запросом данных для отображения картинки может выглядеть так:

Python 3 получение тела письма в base64

Никогда не было и вдруг опять (с). Тензор изменил формат высылаемых на почту электронных чеков. Ранее было вложение PDF в письме, а тут они решили чек «рисовать» средствами HTML прямо в письме. Ну нам без разницы, будем извлекать его..