Python décodage de l'Unicode n'est pas pris en charge
J'ai un problème avec mon codage en Python. J'ai essayé différentes méthodes, mais je n'arrive pas à trouver la meilleure façon de coder ma sortie de l'UTF-8.
C'est ce que je suis en train de faire:
result = unicode(google.searchGoogle(param), "utf-8").encode("utf-8")
searchGoogle
renvoie le premier résultat Google pour param
.
C'est l'erreur que je reçois:
exceptions.TypeError: decoding Unicode is not supported
Personne ne sait comment je peux faire en Python encoder mes sortie en UTF-8 pour éviter cette erreur?
Vous devez vous connecter pour publier un commentaire.
Ressemble
google.searchGoogle(param)
retourne déjàunicode
:Donc ce que vous voulez, c'est:
Comme une note de côté, votre code attend le retour d'un
utf-8
chaîne codée alors, quel a été le point de décodage (à l'aide deunicode()
) et l'encodage de retour (à l'aide de.encode()
) en utilisant le même encodage?unicode()
était juste dupant autour d'essayer de comprendre ce qui se passait. Merci beaucoup 🙂ascii' codec can't decode byte 0xc3 in position
. Savez-vous pourquoi c'est?.encode()
sur que les résultats en Python essayer de les convertir au format unicode d'abord (en utilisant le codage ascii). Je ne sais pas pourquoi searchGoogle() retournait parfois unicode et parfois une chaîne de caractères. Peut-être que ça dépend de ce que vous lui donnez dansparam
? Essayer de s'en tenir à un seul type.def uors2u(object, encoding=..., errors=...)
qui sera de retourobject
param pas si il est déjà en Unicode ou de les convertir si str. Toutefois, ce code d'odeurs. Vous devriez être à la conversion de toutes les entrées en Unicode dès que vous la recevez à partir de l'extérieur (comme un fichier système) et de le convertir en arrière si nécessaire avant de l'envoyer. Il devrait y avoir qu'un seul endroit où vous convertir str en unicode, donc, une fonction d'assistance, comme celle que j'ai décrite ne devrait pas être nécessaire.