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 }
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)
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)
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!