--- title: WindowBase64.btoa() slug: Web/API/WindowOrWorkerGlobalScope/btoa tags: - API - Base-64 - Base64 - Method - Reference - Referencja - WindowBase64 translation_of: Web/API/WindowOrWorkerGlobalScope/btoa original_slug: Web/API/WindowBase64/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.