WindowBase64.btoa()

Tworzy string ASCII zakodowany w base-64 z ci─ůgu ("string") danych binarnych.

Metoda ta jednak nie nadaje si─Ö do konwertowania surowych ci─ůg├│w Unicode! Zobacz sekcj─Ö Unicode poni┼╝ej.

Składnia

var zakodowaneDane = window.btoa(ciagDoZakodowania);

Przykład

var zakodowaneDane = window.btoa("Hello, world"); // kodowanie ci─ůgu
var odkodowaneDane = window.atob(zakodowaneDane); // odkodowywanie ci─ůgu ("Hello, world")

Uwagi

Mo┼╝esz u┼╝ywa─ç tej metody do kodowania danych, kt├│re w innym wypadku mog─ů powodowa─ç problemy z komunikacj─ů. Przeka┼╝ je, a nast─Öpnie u┼╝yj metody window.atob() aby odkodowa─ç dane ponownie. Na przyk┼éad mo┼╝esz zakodowa─ç znaki kontrolne takie jak ASCII o warto┼Ťci od 0 do 31.

btoa() jest tak┼╝e dost─Öpne dla komponent├│w XPCOM zaimplementowanych w JavaScript, nawet je┼╝eli window nie jest globalnym obiektem w komponencie.

Ci─ůgi Unicode

W wi─Ökszo┼Ťci przegl─ůdarek odwo┼éanie si─Ö do window.btoa() z ci─ůgiem Unicode spowoduje wyst─ůpienie wyj─ůtku Character Out Of Range.

Aby tego unikn─ů─ç, rozwa┼╝ ten model odnotowany przez Johana Sundstr├Âma:

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

function b64_to_utf8( str ) {
    return unescape(decodeURIComponent(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!"

Lepszym, bardziej wiarygodnym i mniej wymagaj─ůcym rozwi─ůzaniem jest konwersja DOMString do ci─ůgu zakodowanego w UTF-8 u┼╝ywaj─ůc TypedArray. W tym celu prosz─Ö zapozna─ç si─Ö z tym akapitem.

Specyfikacje

Specyfikacja Status Komentarz
HTML Living Standard
The definition of 'WindowBase64.btoa()' in that specification.
Living Standard Brak zmian od ostatniej migawki, HTML 5.1.
HTML 5.1
The definition of 'WindowBase64.btoa()' in that specification.
Recommendation Migawka HTML Living Standard. Bez zmian.
HTML5
The definition of 'WindowBase64.btoa()' in that specification.
Recommendation Migawka HTML Living Standard. Utworzenie WindowBase64 (properties where on the target before it).

Zgodno┼Ť─ç przegl─ůdarek

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
Funkcja Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Podstawowa obsługa (Yes) 1.0 (1.7 or earlier)[1] 10 (Yes) (Yes)
Funkcja Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Podstawowa obs┼éuga (Yes) 1.0 (1) No support ? (Yes)

[1] btoa() jest tak┼╝e dost─Öpna dla komponent├│w XPCOM zaimplementowanych w JavaScript, nawet je┼╝eli window nie jest globalnym obiektem w komponencie.

Zobacz te┼╝