JavaScript - Методы btoa() и atob()
На этом уроке мы познакомимся с методами объекта window
, которые предназначены для кодирования и декодирования строки на основе схемы base-64.
Метод btoa
Метод btoa
предназначен для кодирования строки, указанной в качестве параметра в ACSII строку base-64, которая будет представлена с помощью 64 символов: A-Z
, a-z
, 0-9
, +
, /
и =
. Кодирование Base64 может используется для визуального скрытия данных от пользователя, для передачи информации и др. Принцип работы метода заключается в том, что он сначала преобразуют строку в последовательность бит, которые затем на основе схемы base-64 преобразуются в закодированную строку.

Синтаксис метода:
window.btoa(Параметр_1);
Метод btoa()
содержит один обязательный параметр - это строка которую нужно закодировать.
Например, закодировать строку в base-64:
var txt = "I Love JavaScript!";
var result = "Исходная строка: " + txt;
result += "<br />";
var encode = window.btoa(txt);
var result = "Закодированная строка: " + encode;
console.log(result);
Примечание: Если в качестве параметра метода window.btoa()
будет использоваться строка Unicode, то может произойти исключение, из-за того что данная строка может содержать символы вне диапазона.
Чтобы этого не допустить, можно использовать следующие функции:
//кодирование строки Unicode в base-64
function utf8_to_b64(str) {
return window.btoa(unescape(encodeURIComponenet(str)));
}
//декодирование строки из base-64 в Unicode
function b64_to_utf8(str) {
return decodeURIComponent(escape(window.atob(str)));
}
Метод atob
Методatob()
декодирует строку, закодированную с помощью метода btoa()
, т.е. он возвращает исходную строку.
Синтаксис метода:
window.atob(Параметр_1);
Метод atob()
содержит один обязательный параметр - это строка которую нужно декодировать.
Например, декодировать строку, закодированную с помощью метода btoa()
:
var txt = "I Love JavaScript!";
var result = "Исходная строка: " + txt;
var result = "<br />";
var encode = window.btoa(txt);
result += "Закодированная строка: " + encode;
result += "<br />";
var decode = window.atob(encode);
result +="Декодированная строка: " + decode;
console.log(result);