【问题标题】:Converting Django bytestring in template在模板中转换 Django 字节串
【发布时间】:2012-02-26 22:06:59
【问题描述】:

我在 django 以字节串形式返回的字段中有一些 intl 字符 - 如何将其转换回我的模板中显示?

编辑澄清: 我的数据库中有一些字节字符串中的日语文本:

'\xe3\x83\x97\xe3\x83\xa9\xe3\x82\xa4\xe3\x83\x90\xe3\x82\xb7\xe3\x83\xbc\xe3\x83\x9d\xe3\x83 \xaa\xe3\x82\xb7\xe3\x83\xbc'

我想将其转换回 プライバシーポリシー"

(注意:Django 没有以这种方式将其保存在我的数据库中 - 数据已导入。)

【问题讨论】:

  • 这是什么意思?为什么不能显示字节串?无论如何,Django 只在内部使用 unicode,所以如果你以某种方式得到字节串,那是由于你自己的配置错误。

标签: django character-encoding django-templates


【解决方案1】:

该文本在 shell 中对我来说很好:

>>> from django import template
>>> s = '\xe3\x83\x97\xe3\x83\xa9\xe3\x82\xa4\xe3\x83\x90\xe3\x82\xb7\xe3\x83\xbc \xe3\x83\x9d\xe3\x83\xaa\xe3\x82\xb7\xe3\x83\xbc'
>>> t = template.Template('{{ s }}')
>>> print t.render(template.Context({'s': s}))
プライバシー ポリシー

所以我不确定你在哪里遇到问题。

【讨论】:

  • 你是对的 - 我的数据库中的字符串编码存在问题 - 它返回了一些混合的十六进制转义字符和 unicode 转义字符
猜你喜欢
  • 2015-03-02
  • 1970-01-01
  • 2022-01-06
  • 2020-11-20
  • 2011-06-17
  • 2021-07-23
  • 2013-07-16
相关资源
最近更新 更多