読者です 読者をやめる 読者になる 読者になる

Pythonの日本語処理

Google App Engineを始めてみた。Pythonを初めて触って日本語処理で小一時間悩んだのでとりあえず書いてみた

まずはこれ

ソースがUTF-8で書かれていることを宣言(utf-8で保存した場合)

# -*- coding: utf-8 -*-

Unicode文字(u'〜〜〜')

Cookieで日本語を扱いたいときにダブルバイト文字はめんどくさい
u'〜〜〜'形式はprintで表示するときは問題無いけど変数として渡すときが問題
色々試してみて今のところこんな感じでやっている

Cookieを保存
import urllib2,Cookie
str = u'ほげほげ'
C = Cookie.Cookie()
C['hogehoge'] = urllib2.quote(str.encode('utf-8'))
print "Content-type: text/html;Charset=utf-8"
print C

printしないとだめみたい(追記:Set-Cookie: name=%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92;と出力してくれるのでクッキーに登録される)

Cookieから取り出し
import urllib2,Cookie,os
from xml.sax.saxutils import escape 
C = Cookie.Cookie()
C.load(os.environ.get("HTTP_COOKIE", ""))
hogehoge = escape(urllib2.unquote(C['hogehoge'].value))
指定した要素('hogehoge')が存在するかわからないとき
import urllib2,Cookie,os
from xml.sax.saxutils import escape 
C = Cookie.Cookie()
C.load(os.environ.get("HTTP_COOKIE", ""))
if 'hogehoge' not in C:
    C['hogehoge'] = ''
    print C
else :
    hogehoge = escape(urllib2.unquote(C['hogehoge'].value))

正直、あまりいい方法ではないと思う(´・ω・`)
もっといい方法があったら教えてほしいっす。。