Heim > Backend-Entwicklung > Golang > Warum gibt „base64.StdEncoding.DecodeString()' „ungültige Base64-Daten' zurück?

Warum gibt „base64.StdEncoding.DecodeString()' „ungültige Base64-Daten' zurück?

Susan Sarandon
Freigeben: 2024-12-07 15:12:13
Original
263 Leute haben es durchsucht

Why Does `base64.StdEncoding.DecodeString()` Return

Ungültige Base64-Daten in base64.StdEncoding.DecodeString()

Beim Versuch, eine Base64-codierte Zeichenfolge mit base64.StdEncoding.DecodeString zu dekodieren (str) kann der Fehler „Ungültige Base64-Daten am Eingabebyte 4“ auftreten. Dieser Fehler tritt normalerweise auf, wenn die Eingabezeichenfolge nicht ordnungsgemäß Base64-codiert ist.

Beachten Sie den folgenden Code:

data, errBase := base64.StdEncoding.DecodeString(Base64Image)
if errBase != nil {
    fmt.Println("error:", errBase)
    return false
}
Nach dem Login kopieren

In diesem Fall enthält die Base64Image-Variable eine Base64-codierte Zeichenfolge. Wenn die Eingabezeichenfolge jedoch auch Teile enthält, die nicht Base64-codiert sind, wie z. B. ein Daten-URI-Schema-Präfix, schlägt der Dekodierungsprozess möglicherweise beim ersten Nicht-Base64-Zeichen fehl, auf das er trifft.

Typischerweise ein Daten-URI-Schema beginnt mit „data:“, gefolgt von einem MIME-Typ, z. B. „image/png“, und kann eine ;base64-Zeichenfolge enthalten. Um die tatsächlichen Base64-kodierten Daten aus einem Daten-URI zu extrahieren, müssen Sie das Präfix bis zum Komma (einschließlich Komma) entfernen.

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

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

Sobald Sie die reinen Base64-kodierten Daten extrahiert haben, können Sie kann es dann mit base64.StdEncoding.DecodeString() dekodieren.

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

Durch Isolieren der Base64-kodierten Daten und Durch die korrekte Dekodierung können Sie den Fehler „Ungültige Base64-Daten“ vermeiden und die Daten wie gewünscht erfolgreich verarbeiten.

Das obige ist der detaillierte Inhalt vonWarum gibt „base64.StdEncoding.DecodeString()' „ungültige Base64-Daten' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage