Методы atob() и btoa() позволяют разработчикам преобразовывать содержимое в кодировку base64 и обратно.
В этих API для мнемонических целей букву «b» можно рассматривать как «binary» (двоичную), а «a» — как «ASCII». Однако на практике, в первую очередь по историческим причинам, и ввод, и вывод этих функций представляют собой строки Unicode.
result = self.btoa(data)
Принимает входные данные в виде строки Unicode, содержащей только символы в диапазоне от U+0000 до U+00FF, каждый из которых представляет двоичный байт со значениями от 0x00 до 0xFF соответственно, и преобразует их в представление base64, которое возвращает.
Выдаёт исключение DOMException «InvalidCharacterError«, если входная строка содержит какие-либо символы, выходящие за пределы допустимого диапазона.
result = self.atob(data)
Принимает входные данные в виде строки Unicode, содержащей двоичные данные в кодировке base64, декодирует их и возвращает строку, состоящую из символов в диапазоне от U+0000 до U+00FF, каждый из которых представляет двоичный байт со значениями от 0x00 до 0xFF. соответственно, соответствующие этим двоичным данным.
Выдаёт исключение DOMException «InvalidCharacterError«, если входная строка не является допустимыми данными base64.
Метод btoa(data) должен генерировать исключение DOMException «InvalidCharacterError«, если данные data содержат любой символ, кодовая точка которого больше U+00FF. В противном случае пользовательский агент должен преобразовать данные data в последовательность байтов, n-ый байт которой является восьмибитным представлением n-ый кодовой точки данных data, а затем должен применить кодировку прощающего base64 к этой последовательности байтов и вернуть результат.
Шаги метода atob(data):
1. Пусть decodedData будет результатом выполнения декодирования в формате base64 данных data . 2. Если decodedData не удалось, выдайте исключение DOMException "InvalidCharacterError". 3. Возврат декодированных данных decodedData.
Информационные ссылки
Стандарт HTML — Раздел «Base64 utility methods» — https://html.spec.whatwg.org/multipage/webappapis.html#atob