にたまごほうれん草アーカイブ

はてなダイアリーで書いてた「にたまごほうれん草」という日記のアーカイブです。現在は「にたまごほうれん草ブログ」を運営中です。

文字列のURLエンコードとクエリ文字列の作成

URLに日本語を含めるときにURLエンコードしようとしたら、ちょっと混乱したのでメモ。
単純に文字列自体をエンコードするときはquote()メソッドを使い、辞書からクエリ文字列を作るときはurlencode()メソッドを使う。

>>> import urllib
>>> s = 'あいうえおかきくけこ'
>>> urllib.quote(s)
'%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A%E3%81%8B%E3%81%8D%E3%81%8F%E3%81%91%E3%81%93'
>>> l = [('x',1),('str1','あいうえお'),('str2','かきくけこ')]
>>> urllib.urlencode(l)
'x=1&str1=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A&str2=%E3%81%8B%E3%81%8D%E3%81%8F%E3%81%91%E3%81%93'