非常に基本的なUnicode Python の問題> Google App Engine APIの Python 2.5 で、カスタム TinyWebDB データベース ( UTF-8でエンコードされたCSVファイル)から Web 側で正しいラテン アクセントを表示できません。 main.py
ウェブ上: タグ = ボール ベアリング / 値 = ルールメント \u00e0 請求書 => NOK!
Android フォンの場合: tag = ボール ベアリング / 値 = roulement à billes => OK!
注: また、ファイルにラテン文字を導入するとmain.py
、実行時にエラー メッセージが表示されます。
解決策は何ですか?
私のコードから抽出:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import codecs
class StoredData(db.Model):
tag = db.StringProperty()
value = db.StringProperty(multiline=True)
date = db.DateTimeProperty(required=True, auto_now=True)
def get_value(self, tag):
entry = db.GqlQuery("SELECT * FROM StoredData where tag = :1", tag).get()
if entry:
value = entry.value
else:
value = "No result"
WritePhoneOrWeb(self, lambda : json.dump(value, self.response.out))
#### Write response to the phone or to the Web depending on fmt
#### Handler is an appengine request handler. writer is a thunk
#### (i.e. a procedure of no arguments) that does the write when invoked.
def WritePhoneOrWeb(handler, writer):
if handler.request.get('fmt') == "html":
WritePhoneOrWebToWeb(handler, writer)
else:
handler.response.headers['Content-Type'] = 'application/jsonrequest'
writer()
#### Write to the Web (without checking fmt)
def WriteToWeb(handler, writer):
handler.response.headers['Content-Type'] = 'text/html;charset=UTF-8'
handler.response.out.write('<html><body>')
writer()
WriteWebFooter(handler, writer)