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 ?
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!