スポンサーリンク

Pythonで文字コードを指定してURLのクエリ文字(パラメータ)をエンコードしたい時

Web系

“urllib.parse.urlencode”は通常”UTF-8″でのエンコードになるが、別の文字コードでエンコードしたい場合は、第四引数の”encoding”で指定する。

import urllib.request

url = 'https://www.example.com'
params = {
  'name': 'ほげほげ',
}
req = urllib.request.Request(
  '{}?{}'.format(
    url,
    urllib.parse.urlencode(
      params,
      doseq=False,
      safe='',
      encoding='shift-jis',
      errors=None
    )
  )
)
response = urllib.request.urlopen(req)
urllib.parse --- URL を解析して構成要素にする — Python 3.8.6rc1 ドキュメント