Python 2.7,Appengine Data Store&统一

时间:2012-03-09 08:43:17

标签: python google-app-engine unicode utf-8

所以我今晚一直在阅读关于Unicoding的一些内容,因为我正在考虑切换到Jinja2,这需要在应用程序的各个地方使用Unicode。我想我对如何处理它有一个很好的想法,但我想在开始编写我的应用程序之前听到这是否合理:

  
      
  1. 处理外部文本输入(通过html表单)

         
        

    a)确保所有html页面都是utf-8编码     b)一旦用户按下提交,请确保一旦python后端收到数据就将数据转换为Unicode ... decode(self.request.get('stuff'),utf-8)
        c)保持unicode,将输出传输到Jinja2,它总是使用utf-8的默认编码。

      
  2.   
  3. 来自appengine数据存储区的信息

         
        

    因为谷歌将所有内容都存储为Unicode,所以来自数据存储区的所有数据都已经是unicode,我不必担心任何事情(耶!)

      
  4.   
  5. 应用中的字符串

         
        

    确保所有“”以u(即“你好”世界“)开头,这将强制所有内容都是unicode。

      
  6.   

以上是我保持一致的策略。还有什么我需要考虑的吗?

谢谢!

1 个答案:

答案 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

时才可用