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
Libérer: 2024-12-03 14:41:09
original
389 Les gens l'ont consulté

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>
Copier après la connexion

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:]
Copier après la connexion

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)
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal