Lors d'une requête HTTP Golang à l'API Microsoft Translator (https://msdn.microsoft.com/en-us/library/dn876735.aspx), vous recevez une erreur lorsque vous tentez de désorganiser la réponse JSON :
err = json.Unmarshal(body, &transTransform)
caractère non valide 'ï' recherchant début de la valeur
Bien que les données JSON semblent valides lorsqu'elles sont imprimées sous forme de chaîne, les comparaisons entre les données de réponse et les données générées à l'aide json.Marshal révèle des écarts.
La réponse du serveur contient une chaîne de texte UTF-8 avec une marque d'ordre d'octet (BOM), qui identifie le texte comme étant codé en UTF-8. Cependant, cette nomenclature doit être supprimée avant le décodage. Pour cela, utilisez la ligne suivante :
body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
Le caractère ï, qui apparaît dans le message d'erreur, résulte de l'interprétation de la nomenclature UTF-8 comme une nomenclature ISO-8859- 1 chaîne.
En supprimant la nomenclature, les données JSON peuvent être désorganisées avec succès dans les données TransformTextResponse. structure.
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!