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'un URI de données ?
Erreur de décodage Base64 : "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(str), vous pouvez rencontrer l'erreur : "données base64 illégales à l'octet d'entrée 4." Cette erreur indique que l'entrée fournie n'est pas dans un format Base64 valide.
Le problème dans votre cas ne réside pas dans l'encodage Base64 lui-même, mais dans la chaîne d'entrée. Au lieu d'une chaîne Base64 pure, vous essayez de décoder un schéma d'URI de données.
Un schéma d'URI de données représente les données d'une page Web sous forme de contenu en ligne, en suivant ceci format:
data:[
Dans votre cas, l'entrée est un Schéma d'URI de données contenant un type MIME image/png et des données codées en Base64. Pour le décoder, vous devez d'abord extraire la partie Base64.
input := "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA" b64data := input[strings.IndexByte(input, ',')+1:] fmt.Println(b64data)
Sortie :
iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYA
Vous pouvez maintenant décoder la chaîne Base64 extraite :
data, err := base64.StdEncoding.DecodeString(b64data) if err != nil { fmt.Println("error:", err) } fmt.Println(data)
Sortie :
[137 80 78 71 13 10 26 10 0 0 0 13 73 72 68 82 0 0 0 100 0 0 0 100 8 6 0]
En extrayant les données Base64 du schéma Data URI et en effectuant la processus de décodage, vous pouvez décoder avec succès le contenu codé en Base64.
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!