Maison > développement back-end > Golang > Pourquoi `base64.StdEncoding.DecodeString()` renvoie-t-il des « données base64 illégales » ?

Pourquoi `base64.StdEncoding.DecodeString()` renvoie-t-il des « données base64 illégales » ?

Susan Sarandon
Libérer: 2024-12-07 15:12:13
original
264 Les gens l'ont consulté

Why Does `base64.StdEncoding.DecodeString()` Return

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

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

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

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!

source:php.cn
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