Heim Backend-Entwicklung Golang Warum erhalte ich beim Decodieren eines Daten-URI die Fehlermeldung „Ungültige Base64-Daten bei Eingabebyte 4'?

Warum erhalte ich beim Decodieren eines Daten-URI die Fehlermeldung „Ungültige Base64-Daten bei Eingabebyte 4'?

Dec 01, 2024 am 12:40 AM

Why Am I Getting a

Base64-Dekodierungsfehler: „Ungültige Base64-Daten bei Eingabebyte 4“

Beim Versuch, eine Base64-kodierte Zeichenfolge mit base64.StdEncoding zu dekodieren .DecodeString(str), möglicherweise tritt der Fehler auf: „Ungültige Base64-Daten am Eingabebyte 4.“ Dieser Fehler weist darauf hin, dass die bereitgestellte Eingabe nicht in einem gültigen Base64-Format vorliegt.

Das Problem liegt in Ihrem Fall nicht in der Base64-Codierung selbst, sondern in der Eingabezeichenfolge. Anstelle einer reinen Base64-Zeichenfolge versuchen Sie, ein Daten-URI-Schema zu dekodieren.

Ein Daten-URI-Schema stellt Daten innerhalb einer Webseite als Inline-Inhalt dar format:

data:[<MIME-type>][;charset=<encoding>][;base64],<data>

In Ihrem Fall ist die Eingabe a Daten-URI-Schema, das einen image/png-MIME-Typ und Base64-codierte Daten enthält. Um es zu dekodieren, müssen Sie zuerst den Base64-Teil extrahieren.

input := "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA"

b64data := input[strings.IndexByte(input, ',')+1:]
fmt.Println(b64data)
Nach dem Login kopieren

Ausgabe:

iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA
Nach dem Login kopieren

Jetzt können Sie die extrahierte Base64-Zeichenfolge dekodieren:

data, err := base64.StdEncoding.DecodeString(b64data)
if err != nil {
    fmt.Println("error:", err)
}
fmt.Println(data)
Nach dem Login kopieren

Ausgabe:

[137 80 78 71 13 10 26 10 0 0 0 13 73 72 68 82 0 0 0 100 0 0 0 100 8 6 0]
Nach dem Login kopieren

Durch Extrahieren der Base64-Daten aus dem Daten-URI-Schema und Durchführen des Nach dem Dekodiervorgang können Sie den Base64-kodierten Inhalt erfolgreich dekodieren.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Decodieren eines Daten-URI die Fehlermeldung „Ungültige Base64-Daten bei Eingabebyte 4'?. 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 Artikel -Tags

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)

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich? GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich? Mar 03, 2025 pm 05:17 PM

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich?

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go? Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go? Mar 10, 2025 pm 05:38 PM

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go?

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren? Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren? Mar 03, 2025 pm 05:22 PM

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren?

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren? Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren? Mar 10, 2025 pm 03:20 PM

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren?

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen? Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen? Mar 10, 2025 pm 05:36 PM

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen?

Wie schreibe ich Dateien in Go Language bequem? Wie schreibe ich Dateien in Go Language bequem? Mar 03, 2025 pm 05:15 PM

Wie schreibe ich Dateien in Go Language bequem?

Wie kann ich Linter und statische Analyse -Tools verwenden, um die Qualität und Wartbarkeit meines GO -Codes zu verbessern? Wie kann ich Linter und statische Analyse -Tools verwenden, um die Qualität und Wartbarkeit meines GO -Codes zu verbessern? Mar 10, 2025 pm 05:38 PM

Wie kann ich Linter und statische Analyse -Tools verwenden, um die Qualität und Wartbarkeit meines GO -Codes zu verbessern?

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache? Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache? Mar 03, 2025 pm 05:18 PM

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache?

See all articles