本地开发服务器和应用程序引擎python utf 8

时间:2012-12-16 16:20:00

标签: python-2.7 google-app-engine utf-8 google-cloud-datastore

在GAE中建立一个网站。 我在开发服务器上做了大部分工作,我有一个数据库。在我的开发服务器中,我插入了UTF-8中的实体,因为如果我没有写入值。但是,这使我必须使用{{ nom.titre.encode("utf-8")}}才能使用jinja2正确显示它们。 我知道GAE数据存储区只使用UNICODE,所以我可以预见到我现在面临的问题。

所以,我使用appcfg.py download_data --url=http://localhost:8080/_ah/remote_api/ --filename=filename.csv --kind=-kind- 获取我的开发数据存储区的备份。

现在问题是当我尝试更新到服务器时。

我使用:

  • appcfg.py upload_data --url=http://as.appspot.com/_ah/remote_api --kind=kind --filename=filename.csv 但{{nom.titre.encode(“utf-8”)}}使用jinja在GAE上出错

  • appcfg.py create_bulkloader_config --filename=G:\Backup\datastore\bulkloader.yaml --url=http://toolsetdocs.appspot.com/_ah/remote_api

    transformers:
    - kind: CISP
      connector: csv
      connector_options:
        encoding: utf-8
    

    我收到UnicodeDecodeError : 'utf-8' codec can't decode .....的错误,等等

那么,最直接的方式将我的开发服务器数据存储的信息上传到GAE数据存储中,保持UTF-8并且不更改模板编码是什么?

1 个答案:

答案 0 :(得分:1)

存储字符串时,应使用decode('utf-8')然后编码以进行显示。您当前正在模板中执行此操作,但您应该在存储时解码预期的UTF-8字符串。