Données Base64 illégales dans base64.StdEncoding.DecodeString()
Lors de la tentative de décodage d'une chaîne codée en base64 à l'aide de base64.StdEncoding.DecodeString (str), vous pouvez rencontrer l'erreur « données base64 illégales à l'octet d'entrée 4 ». Cette erreur se produit généralement lorsque la chaîne d'entrée n'est pas correctement codée en Base64.
Considérez le code suivant :
data, errBase := base64.StdEncoding.DecodeString(Base64Image) if errBase != nil { fmt.Println("error:", errBase) return false }
Dans ce cas, la variable Base64Image contient une chaîne codée en Base64. Cependant, si la chaîne d'entrée contient également des parties qui ne sont pas codées en Base64, comme un préfixe de schéma d'URI de données, le processus de décodage peut échouer au premier caractère non Base64 qu'il rencontre.
Un schéma d'URI de données est généralement commence par « data : » suivi d'un type MIME, tel que « image/png », et peut inclure une chaîne ;base64. Pour extraire les données réelles codées en Base64 d'un URI de données, vous devez supprimer le préfixe jusqu'à la virgule (y compris la virgule).
input := "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA" b64data := input[strings.IndexByte(input, ',')+1:] fmt.Println(b64data)
Une fois que vous avez extrait les données pures codées en Base64, vous peut ensuite le décoder en utilisant base64.StdEncoding.DecodeString().
data, err := base64.StdEncoding.DecodeString(b64data) if err != nil { fmt.Println("error:", err) } fmt.Println(data)
En isolant le Données codées en base64 et décodées correctement, vous pouvez éviter l'erreur « données base64 illégales » et traiter avec succès les données comme vous le souhaitez.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!