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 |
---|---|---|
WHATWG HTML Living Standard The definition of 'WindowBase64.btoa()' in that specification. |
Living Standard | Brak zmian od ostatniej migawki, HTML5.1. |
HTML5.1 The definition of 'WindowBase64.btoa()' in that specification. |
Working Draft | Migawka WHATWG HTML Living Standard. Bez zmian. |
HTML5 The definition of 'WindowBase64.btoa()' in that specification. |
Recommendation | Migawka WHATWG HTML Living Standard. Utworzenie WindowBase64 (properties where on the target before it). |
Zgodność przeglądarek
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) | Not supported | ? | (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.