from google.appengine.ext import db
class names(db.Model):
name = db.StringProperty(multiline=True)
some_name = 'Beyonc\xc3\xa9'.decode('utf-8')
# same as: some_name = u'Beyoncé'
# same as: some_name = u'Beyonc\u00e9'
n = names(name=some_name)
n.put()
q = names.all().filter('name =', some_name)
print q.get().name.encode('utf-8')
# prints Beyoncé
在正确解码输入字符串(从web请求参数获得)和正确编码输出字符串(保存在GAE数据存储中)时,精确匹配应该没有问题。在
我在GAE SDK交互控制台中尝试过这个片段,它起作用了:
您应该调试正在比较的字符串的原始值,即保存在存储器中的字符串和传递给查询的字符串。在
如果您不熟悉处理Unicode字符串,我建议您阅读本文article about Unicode by Joel Spolsky和Python Unicode HOWTO。在
除此之外,如果您运行的搜索查询应该与Unicode字符匹配,比如当输入为
^{pr2}$'e'
时u'é'
,请考虑比较规范化字符串:相关问题 更多 >
编程相关推荐