Base64, btoa(), wie man in JavaScript die Zeichenkodierung ausschaltet
JavaScript arbeitet mit Kodierten Zeichenketten. Ein Versuch btoa('€')
wirft eine Exception (s.o.), weil das Eurozeichen eben eine kodierte Zeichenkette ist. Damit die Base64-Kodierung funktioniert, muß man diese Zeichenkette in einen Binary-String umwandeln, also die Zeichenkodierung ausschalten. Hierzu gibt es 2 Möglichkeiten.
bb = new Blob(['€']); fr = new FileReader(); fr.onload = function(){ console.log( btoa(this.result) ); // 4oKs }; fr.readAsBinaryString(bb);
Zunächst erstellen wir uns eine eigene Klasse zum delegieren der Methoden:
// Eigene Klasse delegiert Methoden // für TextEncode() und TextDecode() function Encode(){ this.enc = new TextEncoder(); this.dec = new TextDecoder(); this.encode = function(ustr){ return this.enc.encode(ustr); }; this.decode = function(uha){ return this.dec.decode(uha); }; }
Das macht die Anwendung recht einfach:
encoder = new Encode(); uha = encoder.encode('€'); // Uint8-Array console.log( btoa( String.fromCharCode(...uha) ) ); // Spread-Syntax // Ergebnis 4oKs
Datenschutzerklärung: Diese Seite dient rein privaten Zwecken. Auf den für diese Domäne installierten Seiten werden grundsätzlich keine personenbezogenen Daten erhoben. Das Loggen der Zugriffe mit Ihrer Remote Adresse erfolgt beim Provider soweit das technisch erforderlich ist. sos@rolfrost.de.