0
我写了一个小型的网络应用程序,它从一个简单的mysql数据库中提取数据,并通过Python和Flask显示它。数据库中的文本字段编码为utf8_general_ci,其中一些包含特殊字符 - 例如“Zürich”。App Engine是否处理与本地不同的字符编码?
由于Flask/Jinja2 like to work on unicode,查询后字符串转换为unicode传递给模板。奇怪的是,我需要一种不同的方法来转换为unicode,具体取决于代码是在本地运行(Mac笔记本电脑)还是部署在GAE上。
本地运行时,此工作:
return [[unicode(c, encoding='utf-8') if isinstance(c, basestring) else c for c in b] for b in l]
部署在GAE时,此工作:
return [[unicode(c, encoding='latin-1') if isinstance(c, basestring) else c for c in b] for b in l]
。
如果我在本地运行GAE版本,'Zürich'显示为'Zürich'。反之亦然,我得到一个UnicodeDecode错误。
据我所知,这两个数据库是相同的 - 在线版本是本地版本的直接转储。