Pythonで、HTTP Requestを作成するのに、URLEncode(URIEncode)をしようとして、Unicodeで文字列を受け取って、変換かけようと思ったら、
UnicodeDecodeError
が発生して、は!?なぜに!?と思ったので調べてみた。
どうにも、urllib.urlencode は、Unicodeには対応していないらしい。
import urllib
urllib.urlencode(
{'title': "火目の巫女", }
)
と書いた場合、”火目の巫女”の部分は、Unicode扱いなんだけれど、これがUnicodeDecodeErrorを投げてくれる。
‘ascii’ codec can’t encode characters in position 0-1
こんなエラーが出るっぽい。
ということで、以下の様に、str型に変換してあげる。
import urllib
urllib.urlencode(
{'title': "火目の巫女".encode('utf-8'), }
)
いや、参ったねこいつは。三時間くらい、あれ~?なんじゃこりゃ!?とか悩んでた・・・w
[Python]巡回
New version of Postmarkup python で InputBox Convert Google Reader subscripti…
defaultencodingを指定すればいいのでは?
sitecustomize.pyを以下のように作成して
import sys
sys.setdefaultencoding(‘utf-8′)
ご指摘ありがとうございます。
早速試してみて、上手くいきました。