--- 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.

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
{{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).

Zgodność przeglądarek

{{CompatibilityTable}}
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.

Zobacz też