JavaScript/WindowOrWorkerGlobalScope/btoa
Die Funktion btoa() codiert einen (binären) String nach Base64 (daher auch btoa: binary to ascii).
Syntax
btoa(String)
-
String
: ein binärer String
Bei der Base64-Codierung werden jeweils 3 Bytes so auf 4 Bytes verteilt, dass jedes der 4 Byte ein ASCII-Zeichen ohne Sonderzeichen ist; der Wertebereich umfasst die 64 Zeichen
- a-z (26 Zeichen)
- A-Z (26 Zeichen)
- 0-9 (10 Zeichen)
- +
- /
Falls die Länge der Eingabe nicht durch 3 teilbar ist, wird das Gleichheitszeichen (=) am Ende zum Auffüllen („Padding“) verwendet. Der zu Grunde liegende Algorithmus ist in RFC 4648 beschrieben.
Inhaltsverzeichnis
Anwendungsbeispiele
Einfaches Anwendungsbeispiel
document.addEventListener('DOMContentLoaded', function(evt) {
document.getElementById('enc').addEventListener('click', encode);
});
function encode() {
document.getElementById('aus').textContent =
btoa(document.getElementById('ein').value);
}
↓
wirft daher einen InvalidCharacterError.Unicode-Strings
Um Zeichen mit mehr als einem Byte zu kodieren muss zuerst ein binärer String als Byte-Array erzeugt werden. Obiges Beispiel kann dann wie folgt aussehen [1]:
document.addEventListener('DOMContentLoaded', function(evt) {
document.getElementById('encu').addEventListener('click', encode);
});
function encode() {
let s = document.getElementById('einu').value;
let uc = new Uint16Array(s.length);
for (let i = 0; i < uc.length; ++i) {
uc[i] = s.charCodeAt(i);
}
document.getElementById('ausu').textContent =
btoa(String.fromCharCode(...new Uint8Array(uc.buffer)));
}
output
-Element ausgegeben. Schreibt man beispielsweise Hallo
hinein, wird SABhAGwAbABvAA==
ausgegeben, ↓
ergibt kyE=
.
output
-Element ausgegeben. Schreibt man beispielsweiseHallo
hinein, wirdSGFsbG8=
ausgegeben.