2013-09-13 [長年日記]
■Unicodeをurllib.quoteに渡すとエラーになる
import urllib print urllib.quote(u'あ')
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 1282, in quote return ''.join(map(quoter, s)) KeyError: u'\u3042'
は?
なんで?
まぁ、いいや。検索してみる……。
このようにするとよい。
print urllib.quote(u'あ'.encode('utf-8'))
%E3%81%82
逆はこう。
a = urllib.quote(u'あ'.encode('utf-8')) print urllib.unquote(a).decode('utf-8')
あ
もうちょっと確認。
print type(urllib.unquote(a).decode('utf-8'))
<type 'unicode'>