У меня проблема с кодировкой на 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, чтобы избежать этой ошибки?
python
encoding
utf-8
character-encoding
Simonbs
источник
источник
unicode()
просто дурачился, пытаясь понять, что происходит. Большое спасибо :-)ascii' codec can't decode byte 0xc3 in position
. Вы знаете, почему это так?.encode()
этого приводит к тому, что Python пытается сначала преобразовать в Unicode (с использованием кодировки ascii). Я не знаю, почему searchGoogle () иногда возвращает Unicode, а иногда и строку. Может это зависит от того, во что вы это даетеparam
? Старайтесь придерживаться одного типа.def uors2u(object, encoding=..., errors=...)
которая будет возвращатьobject
параметр без изменений, если он уже находится в Unicode, или преобразовать его, если str. Однако этот код пахнет. Вы должны конвертировать весь ввод в Unicode, как только вы получите его извне (например, файловую систему), и при необходимости конвертировать обратно, прежде чем отправлять обратно. Должно быть только одно место, где вы конвертируете str в unicode, поэтому вспомогательная функция, подобная той, которую я описал, не нужна.