78 votes

Le décodage Python Unicode n'est pas supporté

J'ai un problème avec mon encodage en Python. J'ai essayé différentes méthodes, mais je n'arrive pas à trouver le meilleur moyen de coder ma sortie au format UTF-8.

C'est ce que j'essaie de faire:

 result = unicode(google.searchGoogle(param), "utf-8").encode("utf-8")
 

searchGoogle renvoie le premier résultat de Google pour param .

C'est l'erreur que j'obtiens:

 exceptions.TypeError: decoding Unicode is not supported
 

Est-ce que quelqu'un sait comment je peux faire en Python pour encoder ma sortie en UTF-8 afin d'éviter cette erreur?

99voto

yak Points 3938

On dirait que google.searchGoogle(param) renvoie déjà unicode :

 >>> unicode(u'foo', 'utf-8')

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    unicode(u'foo', 'utf-8')
TypeError: decoding Unicode is not supported
 

Donc ce que vous voulez c'est:

 result = google.searchGoogle(param).encode("utf-8")
 

En passant, votre code s’attend à ce qu’il retourne une chaîne codée utf-8 alors quel était l’intérêt de le décoder (en utilisant unicode() ) et de le ré-encoder (en utilisant .encode() ) utilisant le même encodage?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X