python - Django 模板上的 Unicode 字符串显示

标签 python django json unicode

我正在使用 django v1.5.*,我将渲染一个名为“foobar”的变量,它是一个 json obj,包括 unicode 字符串。

def home( request ):
    import json
    foo = {"name": u"赞我们一下"}
    bar = json.dumps( foo )
    return render_to_response( 'myapp/home.html',
        { "foobar": bar, },
        context_instance=RequestContext(request)
    )

在我的模板中,我用 javascript 对 json obj 进行编码,然后附加到 div,它可以显示预期的字符串:

  foobar=JSON.encode('{{foobar|safe}}'); 
  $("#foobar").html(foobar.name);`

然后我可以获得赞一下我们在我的网页上。
但是我发现如果直接使用变量:

<div id="foobar">{{ foobar }}</div>

它会将 unicode 字符串显示为字节字符串:
{ "name":"\u8d5e\u4e00\u4e0b\u6211\u4eec" }
即使我使用 {{foobar|safe}}然后什么都没有改变。

现在,我想问一下为什么会这样,或者我有什么问题吗?如果我确实想直接将变量用作{{ foobar }},我该怎么办? ?

最佳答案

bar = json.dumps(foo, ensure_ascii=False) 将导致 bar 成为一个 unicode 对象;没有ensure_ascii=False , bar 是一个 str

Django 的 smart_text方法也可能对转化有用。

关于python - Django 模板上的 Unicode 字符串显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20833772/

相关文章:

php - 解析没有对象名称的 JSON

json - 如何在 fabricjs 中恢复/重用 json 序列化对象?

使用递归查找数字阶乘的 Python 程序

python - 轮廓路径偶尔为空

python - 拉取用户名 - 'ManyRelatedManager' 对象不支持索引

python - Django-ckeditor 无法在 html 中正确显示

c# - newtonsoft json仅解析16位有效数字

python - 获取最新数据项 - Google App Engine - Python

python - 如何实现条件字符串格式化?

django - 使用 FileField 对 Django 表单进行单元测试