rubyとpythonでURLエンコード

最近ちょっとpythonを触ってるので、覚えたことをメモしておく。

rubyの場合

require 'uri'
require 'kconv'

URI.encode('あいうえお')  #=> "%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A"
URI.encode('あいうえお'.toeuc) #=> "%A4%A2%A4%A4%A4%A6%A4%A8%A4%AA"
URI.encode('あいうえお'.tosjis) #=> "%82%A0%82%A2%82%A4%82%A6%82%A8"
URI.encode('あいうえお'.toutf8) #=> "%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A"

pythonの場合

import urllib

print urllib.quote('あいうえお')
# %E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A
print urllib.quote(u'あいうえお'.encode('euc-jp'))
# %A4%A2%A4%A4%A4%A6%A4%A8%A4%AA
print urllib.quote(u'あいうえお'.encode('shift_jis'))
# %82%A0%82%A2%82%A4%82%A6%82%A8
print urllib.quote(u'あいうえお'.encode('utf-8'))
# %E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A