Lorsque vous travaillez avec des données JSON, il est possible de rencontrer des caractères UTF-8 non valides, entraînant des erreurs lors du marshaling. Ce problème est dû à la présence d'octets non conformes au codage UTF-8.
Dans Go, vous pouvez résoudre ce problème en supprimant ou remplacement des caractères invalides en utilisant diverses approches :
strings.ToValidUTF8("a\xc5z", "")
fixUtf := func(r rune) rune { if r == utf8.RuneError { return -1 } return r } fmt.Println(strings.Map(fixUtf, "a\xc5z")) fmt.Println(strings.Map(fixUtf, "posic�o"))
Cette fonction supprime tous les caractères UTF-8 non valides en les mappant à une valeur négative, ce qui donne le résultat attendu :
az posico
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!