Maison >développement back-end >Golang >Pourquoi est-ce que j'obtiens une erreur « Données Base64 illégales à l'octet d'entrée 4 » lors du décodage d'une chaîne Base64 ?
Exception : données Base64 illégales à l'octet d'entrée 4
Lors de la tentative de décodage d'une chaîne codée en base64 à l'aide de base64.StdEncoding.DecodeString, un Une erreur « données base64 illégales à l’octet d’entrée 4 » peut se produire. Cette erreur provient d'une mauvaise gestion des schémas d'URI de données.
Les schémas d'URI de données encodent les données en ligne dans les pages Web, ressemblant à des ressources externes. Leur format ressemble à :
data:[<MIME-type>][;charset=<encoding>][;base64],<data>
où :
Pour résoudre le problème dans votre scénario, vous devez extraire les données codées en base64 du schéma URI de données avant le décodage. Pour y parvenir, supprimez le préfixe jusqu'à la virgule :
input := "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA" b64data := input[strings.IndexByte(input, ',') + 1:]
Vous disposez désormais des données codées en base64, qui peuvent être décodées avec succès :
data, err := base64.StdEncoding.DecodeString(b64data) if err != nil { fmt.Println("error:", err) } fmt.Println(data)
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!