GAE-Datastore 中文数据储存的问题
1. 中文资料可以unicode的方式存进 datastoreex:
from google.appengine.ext import db
from google.appengine.ext.db import polymodel
import urllib,sys
class Contact(polymodel.PolyModel):
phone=db.PhoneNumberProperty()
address=db.PostalAddressProperty()
class Person(Contact):
first_name=db.StringProperty()
last_name=db.StringProperty()
mobile=db.PhoneNumberProperty()
class Company(Contact):
title=db.StringProperty()
fax=db.PhoneNumberProperty()
strAddr=unicode('這是中文','utf-8')
p=Person(first_name='eric',last_name='abc',mobile=db.PhoneNumber('0920891999'),phone=db.PhoneNumber('0912123456'),address=db.PostalAddress(strAddr))
p.put()
c=Company(title='Foo Company',phone=db.PhoneNumber('091234567'),address=db.PostalAddress(strAddr),fax=db.PhoneNumber('09123456789'))
c.put()
2. 资料取出的方式
ex:
for contact in Contact.all():
s='%s:%s'%(contact.phone.encode('utf-8'),contact.address.encode('utf-8'))
print s
储存以unicode的方式,取出时以utf-8的方式显示,要合并在同一个字串时,记得要将另一个字串的编码也encode成utf-8
没有评论:
发表评论