JavaScriptで言うところのencodeURIと同じことをPythonでやるにはurllib.quote()メソッドを使う。
第一引数に変換したい文字列を、第二引数に変換したい文字コードを設定すること。
但し上記の方法だと、GETリクエストのURIは作りにくいので、urllib.urlencode()というメソッドがある。これはクエリにしたいものをリスト形式で記述して、urlencode()の引数に与えてあげる。(辞書形式の場合は順番は保持されない)
第一引数に変換したい文字列を、第二引数に変換したい文字コードを設定すること。
# -*- coding: utf-8; -*- import urllib print urllib.quote('いろはにほへと') print urllib.quote(u'いろはにほへと'.encode('euc-jp')) print urllib.quote(u'いろはにほへと'.encode('shift_jis')) print urllib.quote(u'いろはにほへと'.encode('iso-2022-jp')) print urllib.quote(u'いろはにほへと') print urllib.unquote('%E3%81%84%E3%82%8D%E3%81%AF%E3%81%AB%E3%81%BB%E3%81%B8%E3%81%A8')
但し上記の方法だと、GETリクエストのURIは作りにくいので、urllib.urlencode()というメソッドがある。これはクエリにしたいものをリスト形式で記述して、urlencode()の引数に与えてあげる。(辞書形式の場合は順番は保持されない)
# -*- coding: utf-8; -*- import urllib urlprefix = 'http://www.google.co.jp/search?' keyword = u'Python URIエンコード' lang = 'ja' encoding = 'utf-8' query = [ ('q', keyword.encode(encoding)), ('hl', lang), ('lr', 'lang_' + lang), ('ie', encoding), ('oe', encoding), ] print urlprefix + urllib.urlencode(query)
参考元はこちら
0 件のコメント:
コメントを投稿