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 ?

Pourquoi est-ce que j'obtiens une erreur « Données Base64 illégales à l'octet d'entrée 4 » lors du décodage ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-03 14:41:09336parcourir

Why Am I Getting an

Dépannage de l'erreur "Données Base64 illégales à l'octet d'entrée 4" dans le décodage Base64

Lors de l'utilisation de base64.StdEncoding.DecodeString(str), une erreur indiquant "données base64 illégales à l'octet d'entrée 4" peut se produire. Ce problème survient lorsque la chaîne d'entrée fournie pour le décodage contient des données non codées en Base64.

Comprendre le schéma d'URI des données

Souvent, la chaîne d'entrée n'est pas directement codée en Base64 mais fait plutôt partie d'un schéma d'URI de données. Ce schéma intègre les données dans les pages Web en tant que ressources en ligne en utilisant le format suivant :

data:[<MIME-type>][;charset=<encoding>][;base64],<data>

Dans le cas de l'erreur fournie, la chaîne d'entrée représente un URI de données avec le type MIME image/png. Pour extraire les données codées en Base64 réelles :

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

b64data := input[strings.IndexByte(input, ',')+1:]

Cela élimine le préfixe et ne laisse que les données codées en Base64.

Décodage des données Base64 extraites

Une fois les données codées en Base64 (b64data) obtenues, elles peuvent être décodées à l'aide du Fonction base64.StdEncoding.DecodeString() pour extraire les données brutes. Par exemple :

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn