如何在GAE Text.Property字段中将文本存储为UTF-8?

时间:2013-04-16 10:02:24

标签: python google-app-engine encoding google-cloud-datastore

我知道GAE默认将db.TextProperty存储为ASCII。如何在textField中存储utf编码的文本?我试过db.Text(txt, encoding='utf_8')但是无法让它运转起来。

使用交互式控制台没有回溯,只有普通的request failed。但是传递没有'Ü'的文本就可以了。所以我确定这是一个编码问题。有人可以帮忙吗?

class Greeting(db.Model):
    lang_category = db.StringProperty(choices=("de_DE", "en_US", "pt_PT"), 
                                     required=True)
    greet_txt = db.TextProperty(required=True)


def put_greet(lang,txt):
    g = Greeting(lang_category = lang,
        greet_txt = db.Text(txt, encoding='utf_8'))
    g.put()


put_greet("de_DE","Voller Überzeugung.")

1 个答案:

答案 0 :(得分:0)

尝试

def put_greet(lang,txt):
    g = Greeting(lang_category = lang,
        greet_txt = db.Text(txt))
    g.put()

put_greet("de_DE", u"Voller Überzeugung.")

另外,我更喜欢使用ndb(google.appengine.ext.ndb)模块而不是db。