--- title: WindowBase64.btoa() slug: Web/API/btoa tags: - API - Base-64 - Base64 - Method - Reference - Referencja - WindowBase64 translation_of: Web/API/WindowOrWorkerGlobalScope/btoa original_slug: Web/API/WindowOrWorkerGlobalScope/btoa ---
{{APIRef}}
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.
var zakodowaneDane = window.btoa(ciagDoZakodowania);
var zakodowaneDane = window.btoa("Hello, world"); // kodowanie ciągu
var odkodowaneDane = window.atob(zakodowaneDane); // odkodowywanie ciągu ("Hello, world")
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.
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.
| Specyfikacja | Status | Komentarz |
|---|---|---|
| {{SpecName('HTML WHATWG', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}} | {{Spec2('HTML WHATWG')}} | Brak zmian od ostatniej migawki, {{SpecName("HTML5.1")}}. |
| {{SpecName('HTML5.1', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}} | {{Spec2('HTML5.1')}} | Migawka {{SpecName("HTML WHATWG")}}. Bez zmian. |
| {{SpecName("HTML5 W3C", "#dom-windowbase64-btoa", "WindowBase64.btoa()")}} | {{Spec2('HTML5 W3C')}} | Migawka {{SpecName("HTML WHATWG")}}. Utworzenie WindowBase64 (properties where on the target before it). |
| Funkcja | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Podstawowa obsługa | {{CompatVersionUnknown}} | {{CompatGeckoDesktop(1)}}[1] | 10 | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Funkcja | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Podstawowa obsługa | {{CompatVersionUnknown}} | {{CompatGeckoMobile(1)}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatVersionUnknown}} |
[1] btoa() jest także dostępna dla komponentów XPCOM zaimplementowanych w JavaScript, nawet jeżeli window nie jest globalnym obiektem w komponencie.