Расшифровка Python Unicode не поддерживается - PullRequest
74 голосов
/ 03 октября 2011

У меня проблема с кодировкой в ​​Python.Я пробовал разные методы, но я не могу найти лучший способ кодировать мой вывод в UTF-8.

Вот что я пытаюсь сделать:

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

searchGoogle возвращает первый результат Google для param.

Это ошибка, которую я получаю:

exceptions.TypeError: decoding Unicode is not supported

Кто-нибудь знает, как я могу заставить Python кодировать мой вывод в UTF-8 визбежать этой ошибки?

1 Ответ

96 голосов
/ 03 октября 2011

Похоже, google.searchGoogle(param) уже возвращает 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

Итак, что вы хотите:

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

В качестве примечания, ваш код ожидает, что он вернет закодированную строку utf-8, так какой смысл ее декодировать (используя unicode()) и кодировать обратно (используя .encode()) с использованием той же кодировки?

...