Bei der Verwendung von base64.StdEncoding.DecodeString(str) tritt ein Fehler auf, der auf „ungültige Base64-Daten“ hinweist am Eingangsbyte 4" auftreten. Dieses Problem tritt auf, wenn die zur Dekodierung bereitgestellte Eingabezeichenfolge nicht Base64-codierte Daten enthält.
Daten-URI-Schema verstehen
Oft ist die Eingabezeichenfolge nicht direkt Base64-codiert, sondern eher ein Teil eines Daten-URI-Schemas. Dieses Schema bettet Daten in Webseiten als Inline-Ressourcen im folgenden Format ein:
data:[<MIME-type>][;charset=<encoding>][;base64],<data>
Im Falle des bereitgestellten Fehlers stellt die Eingabezeichenfolge einen Daten-URI mit dem MIME-Typ image/png dar. So extrahieren Sie die tatsächlichen Base64-kodierten Daten:
input := "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA" b64data := input[strings.IndexByte(input, ',')+1:]
Dadurch wird das Präfix entfernt und es bleiben nur die Base64-kodierten Daten übrig.
Dekodierung der extrahierten Base64-Daten
Sobald die Base64-codierten Daten (b64data) erhalten wurden, können sie mithilfe von decodiert werden base64.StdEncoding.DecodeString()-Funktion zum Extrahieren der Rohdaten. Zum Beispiel:
data, err := base64.StdEncoding.DecodeString(b64data) if err != nil { fmt.Println("error:", err) } fmt.Println(data)
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Dekodieren die Fehlermeldung „Ungültige Base64-Daten am Eingabebyte 4'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!