Heim Web-Frontend Front-End-Fragen und Antworten Javascript Base64 verstümmelter Code

Javascript Base64 verstümmelter Code

May 16, 2023 am 09:25 AM

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
Nach dem Login kopieren

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==
Nach dem Login kopieren

String.fromCharCode.apply(null, byteArray) wird hier verwendet, um die Binärdatenansicht in einen gewöhnlichen String umzuwandeln und ihn dann zu kodieren.

So lösen Sie das Problem der Base64-Codierung verstümmelter Zeichen

Base64-Codierung verstümmelter Zeichen wird normalerweise aus folgenden Gründen verursacht:

    Bei Nicht-ASCII-Zeichen kann die Methode window.btoa() Codierungsfehler verursachen. Darüber hinaus können bestimmte Zeichen wie +, /, = Zeichen Codierungsfehler verursachen.
  1. In einigen Fällen fügt der Browser nach der Base64-Codierung automatisch
  2. Zeilenumbrüche hinzu, was zu Codierungsfehlern führt.
  3. Beim Codieren von Binärdaten müssen Sie die richtige Methode verwenden, um sie in eine Zeichenfolge umzuwandeln.
Die Methoden zur Lösung dieser Probleme sind wie folgt:

    Um Codierungsfehler für Nicht-ASCII-Zeichen zu beheben: Sie können Drittanbieter verwenden Bibliotheken wie js-base64 oder CryptoJS, die UTF-8-codierte Binärdaten unterstützen. Beispiel:
  1. var str = "你好世界";
    var encodedString = window.btoa(unescape(encodeURIComponent(str))); // 使用第三方库
    console.log(encodedString); //5L2g5aW977yM5LiW55WM
    Nach dem Login kopieren
Hier wird unescape(encodeURIComponent(str)) verwendet, um die UTF-8-codierte Zeichenfolge in eine ASCII-Zeichenfolge zu konvertieren, und anschließend wird window.btoa() dazu verwendet kodieren Sie es.

    Automatische Hinzufügung und
  1. Zeilenumbrüche vermeiden: Beim Codieren von Bildern oder Binärdaten können Sie Array-Puffer oder Blob-Objekte verwenden, um Binärdaten zu übergeben, zum Beispiel:
    # 🎜🎜#
    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); // 编码,避免自动添加和
    换行符
    Nach dem Login kopieren
  2. Hier verwenden wir das Blob-Objekt, um Binärdaten zu übergeben, und das FileReader-Objekt, um sie in eine Daten-URL zu konvertieren. Die Daten-URL enthält keine Zeilenumbrüche und
.


Binärdaten richtig kodieren: Beim Konvertieren eines Arrays von Binärdaten in eine Zeichenfolge sollten Sie die richtige Kodierungsmethode verwenden, normalerweise die TextDecoder-API oder die TextEncoder-API. Zum Beispiel:
  1. 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);
    Nach dem Login kopieren
    Hier verwenden wir die TextDecoder-API, um das binäre Datenarray in einen UTF-8-codierten String zu konvertieren und ihn dann mit der Methode window.btoa() zu codieren.

    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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Mar 19, 2025 pm 03:58 PM

In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Mar 21, 2025 pm 06:23 PM

In Artikel werden die Verbindungskomponenten an Redux Store mit Connect () verbinden, wobei MapStatetoprops, MapDispatchtoprops und Leistungsauswirkungen erläutert werden.

Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Mar 19, 2025 pm 03:59 PM

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Mar 19, 2025 pm 04:10 PM

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Was sind die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten? Was sind die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten? Mar 19, 2025 pm 04:16 PM

Der Artikel erörtert die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten bei React, wobei sich auf Aspekte wie Vorhersehbarkeit, Leistung und Anwendungsfälle konzentriert. Es rät zu Faktoren, die bei der Auswahl zwischen ihnen berücksichtigt werden müssen.

Reacts Rolle bei HTML: Verbesserung der Benutzererfahrung Reacts Rolle bei HTML: Verbesserung der Benutzererfahrung Apr 09, 2025 am 12:11 AM

React kombiniert JSX und HTML, um die Benutzererfahrung zu verbessern. 1) JSX bettet HTML ein, um die Entwicklung intuitiver zu gestalten. 2) Der virtuelle DOM -Mechanismus optimiert die Leistung und reduziert den DOM -Betrieb. 3) Komponentenbasierte Verwaltungs-Benutzeroberfläche zur Verbesserung der Wartbarkeit. 4) Staatsmanagement und Ereignisverarbeitung verbessern die Interaktivität.

Was sind die Einschränkungen des Reaktivitätssystems von Vue 2 in Bezug auf Array- und Objektänderungen? Was sind die Einschränkungen des Reaktivitätssystems von Vue 2 in Bezug auf Array- und Objektänderungen? Mar 25, 2025 pm 02:07 PM

Das Reaktivitätssystem von VUE 2 kämpft mit der Einstellung der Direktarray -Index, der Längenänderung und der Addition/Löschung der Objekteigenschaften. Entwickler können die Mutationsmethoden von VUE und VUE.SET () verwenden, um die Reaktivität sicherzustellen.

Wie definieren Sie Routen mit der & lt; Route & gt; Komponente? Wie definieren Sie Routen mit der & lt; Route & gt; Komponente? Mar 21, 2025 am 11:47 AM

In dem Artikel wird das Definieren von Routen im React -Router unter Verwendung der & lt; Route & gt; Komponente, Abdeckung von Requisiten wie Pfad, Komponente, Rendern, Kindern, exakt und verschachteltes Routing.

See all articles