'全力HP' ← → %E5%85%A8%E5%8A%9BHP
Pythonで上のような変換をやりたいときの覚書。
utf-8文字列のURLエンコード
utf-8文字列 txt: '全力HP'
urllib2.quote(txt.encode("utf-8"))
URLエンコード済み文字列 : %E5%85%A8%E5%8A%9BHP
URLエンコード済み文字列をutf-8に戻す(URLデコード)
URLエンコード済み文字列 enc_txt: %E5%85%A8%E5%8A%9BHP
urllib2.unquote(enc_txt).encode('raw_unicode_escape').decode('utf-8')
utf-8文字列: '全力HP'
サンプルコードをつけたかったが、printなどで表示するためにはunicodeに変換して、えーと、とか考えていたらワケがわからなくなったので、とりあえず現時点でわかっていることだけをメモしておくことにしよう。
いちおう図に描いてみたが、今扱っている文字列がunicodeなのかutf-8なのかが、私にはいまいちわからない。図からすると、unicodeをわざわざutf-8に変換しなくても直接URLエンコードすればいいような気もする。ソースコードをutf-8で記述していることにも関係してくるのだろうか。どうも、何か根本的な知識が私には欠けている気がしてきた。
なお、クッキーに日本語を保存したかっただけだったのだが、色々調べたり試したりした結果、ようやくURLエンコードすれば日本語もクッキーに保存出来る、というところまでたどり着いたのだった。ものすごく時間がかかったけども、ほんのちょっぴり前進したので、まあよしとしよう。