所以我今晚一直在阅读关于Unicoding的一些内容,因为我正在考虑切换到Jinja2,这需要在应用程序的各个地方使用Unicode。我想我对如何处理它有一个很好的想法,但我想在开始编写我的应用程序之前听到这是否合理:
处理外部文本输入(通过html表单)
a)确保所有html页面都是utf-8编码 b)一旦用户按下提交,请确保一旦python后端收到数据就将数据转换为Unicode ... decode(self.request.get('stuff'),utf-8)
c)保持unicode,将输出传输到Jinja2,它总是使用utf-8的默认编码。来自appengine数据存储区的信息
因为谷歌将所有内容都存储为Unicode,所以来自数据存储区的所有数据都已经是unicode,我不必担心任何事情(耶!)
- 醇>
应用中的字符串
确保所有“”以u(即“你好”世界“)开头,这将强制所有内容都是unicode。
以上是我保持一致的策略。还有什么我需要考虑的吗?
谢谢!
答案 0 :(得分:1)
如果使用webapp或webapp2,则不需要.decode(self.request.get('stuff'),utf-8。框架遵循指定的数据输入类型。
其他一切看起来都是正确的。
我也相信
from __future__ import unicode_strings
应该是
from __future__ import unicode_literals
并且仅在2.6和2.7中可用。因此,在App Engine中,只有在使用2.7
时才可用