web-dev-qa-db-ja.com

Python Unicodeのデコードはサポートされていません

Pythonでのエンコーディングに問題があります。さまざまな方法を試しましたが、出力をUTF-8にエンコードする最良の方法を見つけることができないようです。

これは私がやろうとしていることです:

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

searchGoogleは、paramの最初のGoogle結果を返します。

これは私が得るエラーです:

exceptions.TypeError: decoding Unicode is not supported

このエラーを回避するためにPythonを出力をUTF-8でエンコードする方法を知っている人はいますか?

76
simonbs

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()を使用) ?

97
yak