ガジェカツ~在宅SEのガジェット活動ブログ~

在宅SEな筆者がガジェットネタやIT、プログラミングネタを書き連ねるブログ

PythonでのShiftJISのURLデコード

今、GAEでzuzu鯖のIMEの代わりを作っているのだが、URLデコードで詰まった。
ShiftJISでのURLデコードの方法がどこにも載ってないのだ。
文字コード関連の文献をあさって、成功した方法が以下の通り

url = "http%3a%2f%2fd%2ehatena%2ene%2ejp%2fzuzu_sion%2f"
url = urllib.unquote_plus(url.decode('utf-8'))

なにをやっているかというと、一度ShiftJISをUTF-8にデコードする。
それが、この部分、

url.decode('utf-8')

そうするとShiftJISでのURLエンコード文字列がUTF-8でのURLエンコード文字列になる。
そして、それをurllibライブラリのunquote_plusによってURLデコードすれば、できあがりというわけだ。

まとめ

  1. ShiftJISをUTF-8にデコード
  2. urllib.unquote_plusによってURLデコード
  3. 完成