Wie kann man in JavaScript eine Zeichenkette in Base64 kodieren?
Ich habe ein PHP-Skript, das ein PNG-Bild in einen Base64-String kodieren kann.
Ich möchte dasselbe mit JavaScript machen. Ich weiß, wie man Dateien öffnet, aber ich bin nicht sicher, wie man die Kodierung durchführt. Ich bin es nicht gewohnt, mit binären Daten zu arbeiten.
744
3
Sie können
btoa()
undatob()
zur Konvertierung in und aus der base64-Kodierung verwenden.Es scheint in den Kommentaren etwas Verwirrung darüber zu geben, was diese Funktionen akzeptieren/zurückgeben, also...
btoa()
akzeptiert eine "Zeichenkette", bei der jedes Zeichen ein 8-Bit-Byte darstellt - wenn Sie eine Zeichenkette übergeben, die Zeichen enthält, die nicht in 8 Bits dargestellt werden können, wird sie wahrscheinlich abbrechen. Das ist kein Problem, wenn Sie die Zeichenkette tatsächlich als Byte-Array behandeln, aber wenn Sie versuchen, etwas anderes zu tun, müssen Sie sie zuerst kodieren.atob() gibt einen "String" zurück, bei dem jedes Zeichen ein 8-Bit-Byte repräsentiert - das heißt, sein Wert liegt zwischen 0 und 0xff. Das bedeutet nicht, dass es sich um ASCII handelt - wenn Sie diese Funktion überhaupt benutzen, erwarten Sie vermutlich, dass Sie mit binären Daten und nicht mit Text arbeiten.
Siehe auch:
[Von hier][1]:
Sunnys Code ist großartig, außer dass er im IE7 aufgrund von Verweisen auf "this" nicht funktioniert. Behoben durch Ersetzen solcher Verweise mit "Base64":