Maison > développement back-end > Golang > Comment corriger l'erreur « Caractère invalide \'ï\' recherchant le début de la valeur » dans JSON Unmarshal ?

Comment corriger l'erreur « Caractère invalide \'ï\' recherchant le début de la valeur » dans JSON Unmarshal ?

Susan Sarandon
Libérer: 2024-12-02 17:15:15
original
413 Les gens l'ont consulté

How to Fix

Gestion des erreurs : résolution d'une erreur de caractère non valide lors du démarchage JSON

Une demande de service Web adressée à Microsoft Translator a généré une erreur lors de la tentative de démarshalage de la sortie JSON à l'aide de json.Unmarshal. L'erreur spécifique rencontrée était "caractère 'ï' invalide recherchant le début de la valeur."

Enquête sur le problème

Lors de l'inspection de la réponse JSON sous forme de chaîne, il est devenu évident que les données semblaient valides. . Cependant, la comparaison des tableaux d'octets de la réponse et d'une version marshalée manuellement des données attendues a révélé une divergence.

Identification du problème

La divergence a été attribuée à la présence d'une marque d'ordre d'octets. (BOM) dans la réponse. Une nomenclature est un caractère spécial qui identifie l'encodage d'un fichier texte, dans ce cas, UTF-8.

Résolution

La nomenclature doit être supprimée avant de décoder la réponse JSON. Ceci peut être réalisé en utilisant la ligne de code suivante :

body = bytes.TrimPrefix(body, []byte("\xef\xbb\xbf")) // Or []byte{239, 187, 191}
Copier après la connexion

Explication

La fonction bytes.TrimPrefix supprime la nomenclature du début du tableau d'octets du corps, permettant le json.Unmarshal suivant opération pour continuer sans rencontrer l'erreur de caractère invalide.

Conclusion

L'erreur "caractère invalide 'ï' recherche du début de la valeur" pendant json.Unmarshal peut être provoqué par une nomenclature dans la réponse JSON. La suppression de la nomenclature à l'aide de la fonction bytes.TrimPrefix résout le problème et permet aux données d'être désorganisées avec succès.

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