In letzter Zeit sind auf vielen Websites Probleme mit verstümmeltem Code aufgetreten, wenn Javascript zur Base64-Kodierung von Bildern und Text verwendet wurde. Diese Situation wird normalerweise durch Fehler in der Kodierungsmethode oder dem Kodierungsprozess verursacht. Um diese Probleme zu lösen, müssen wir ein tiefes Verständnis der Base64-Codierung in Javascript und ihrer korrekten Verwendung haben.
Was ist Base64?
Base64 ist eine Methode zum Kodieren von Binärdaten in ASCII-Zeichen. Es wandelt 3 8-Bit-Bytes in 4 6-Bit-Bytes um und füllt das Ergebnis mit einem der 64 Zeichen des angegebenen Zeichensatzes in eine ASCII-Zeichenfolge auf. Bei der Datenübertragung wird üblicherweise Base64 verwendet, um Binärdaten in ASCII-Zeichen umzuwandeln, damit diese bei der Übertragung nicht falsch verarbeitet werden. Es wird häufig für die E-Mail- und Datenübertragung verwendet.
Verwendung der Implementierung von Base64 in Javascript
Es gibt bereits eine Implementierung von Base64 in Javascript, sodass Sie den Algorithmus nicht selbst schreiben müssen. Wir können die Methode window.btoa() verwenden, um die Zeichenfolge mit Base64 zu kodieren, und die Methode window.atob(), um sie rückwärts zu dekodieren. Diese Methoden funktionieren nur mit ASCII-Zeichen und werden in Browsern unter IE9 nicht unterstützt.
Zum Beispiel:
var str = "Hello World"; var encodedString = window.btoa(str); // 编码 var decodedString = window.atob(encodedString); // 解码 console.log(encodedString); // SGVsbG8gV29ybGQ= console.log(decodedString); // Hello World
Beim Kodieren von Bildern oder anderen Binärdaten müssen wir diese als Binärdatenansichten an die Methode window.btoa() übergeben, zum Beispiel: # 🎜🎜#
var byteArray = new Uint8Array([73, 69, 78, 68, 255, 216, 255]); var encodedString = window.btoa(String.fromCharCode.apply(null, byteArray)); // 编码 console.log(encodedString); // SU5ET1+J/g==
var str = "你好世界"; var encodedString = window.btoa(unescape(encodeURIComponent(str))); // 使用第三方库 console.log(encodedString); //5L2g5aW977yM5LiW55WM
var byteArray = new Uint8Array([73, 69, 78, 68, 255, 216, 255]); var blob = new Blob([byteArray], {type: 'image/jpeg'}); var reader = new FileReader(); reader.onloadend = function() { console.log(reader.result); }; reader.readAsDataURL(blob); // 编码,避免自动添加和 换行符
var byteArray = new Uint8Array([73, 69, 78, 68, 255, 216, 255]); var decoder = new TextDecoder('utf-8'); var str = decoder.decode(byteArray); // 将二进制数据数组转换为字符串 var encodedString = window.btoa(str); // 编码 console.log(encodedString);
Fazit
In Javascript ist die Verwendung von Base64 zum Codieren und Decodieren eine effektive Methode, aber in tatsächlichen Anwendungen müssen Sie auf die Implementierungsdetails und Vorsichtsmaßnahmen achten, um Codierung zu vermeiden Fehler und Kauderwelsch. Die Verwendung korrekter Kodierungsmethoden und Bibliotheken von Drittanbietern zum Kodieren und Dekodieren sowie die Verwendung von Array-Puffer oder Blob-Objekten beim Kodieren von Binärdaten können uns helfen, das Base64-Verstümmelungsproblem zu lösen.
Das obige ist der detaillierte Inhalt vonJavascript Base64 verstümmelter Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!