WindowBase64.btoa()

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Creates a base-64 encoded ASCII string from a "string" of binary data.

Будьте внимательней этот способ не подходит для Unicode строк! Описание работы с Unicode в секции ниже.

Синтаксис

var encodedData = window.btoa(stringToEncode);

Пример

var encodedData = window.btoa("Hello, world"); // encode a string
var decodedData = window.atob(encodedData); // decode the string

Замечания

Вы можете воспользоваться этим способом, чтобы избежать проблем при передаче данных через сетевое соединение. Для этого нужно перекодировать данные в base64 и отправить их, и на другой стороне с помощью метода window.atob() декодировать полученные данные в исходный вид. Например, вы можете перекодировать управляющие символы ASCII с 0 до 31.

btoa() is also available to XPCOM components implemented in JavaScript, even though window is not the global object in components.

Строки Юникод

В большинстве браузеров, вызов window.btoa() на Unicode строке выбросит исключение Character Out Of Range (Символ вне допустимого диапазона).

Чтобы избежать этого, воспользуйтесь патерном предложеным Johan Sundström:

function utf8_to_b64(str) {
    return window.btoa(unescape(encodeURIComponent(str)));
}

function b64_to_utf8(str) {
    return decodeURIComponent(escape(window.atob(str)));
}

// Usage:
utf8_to_b64('✓ à la mode'); // JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ==
b64_to_utf8('JTI1dTI3MTMlMjUyMCUyNUUwJTI1MjBsYSUyNTIwbW9kZQ=='); // "✓ à la mode"

utf8_to_b64('I \u2661 Unicode!'); // SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ==
b64_to_utf8('SSUyNTIwJTI1dTI2NjElMjUyMFVuaWNvZGUlMjUyMQ=='); // "I ♡ Unicode!"

Более правильный и производительный способ - это сконвертировать DOMString в UTF-8 строку передав typed arrays. Как это сделать узнать можно здесь в этом параграфе.

Спецификации

Specification Status Comment
WHATWG HTML Living Standard
Определение 'WindowBase64.btoa()' в этой спецификации.
Живой стандарт No change since the latest snapshot, HTML5.1.
HTML5.1
Определение 'WindowBase64.btoa()' в этой спецификации.
Рабочий черновик Snapshot of WHATWG HTML Living Standard. No change.
HTML5
Определение 'WindowBase64.btoa()' в этой спецификации.
Рекомендация Snapshot of WHATWG HTML Living Standard. Creation of WindowBase64 (properties where on the target before it).

Совместимость браузеров

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Да) 1.0 (1.7 или ранее)[1] 10 (Да) (Да)
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Да) 1.0 (1) Нет ? (Да)

[1] btoa() is also available to XPCOM components implemented in JavaScript, even though window is not the global object in components.

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: uleming
 Обновлялась последний раз: uleming,