Django模板上的Unicode字符串显示

 Rony通_184_176 发布于 2023-02-07 15:52

我正在使用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);`

然后我就可以登录?????我的网页了.
但我发现如果我直接使用变量:

{{ foobar }}

它会将unicode字符串显示为字节字符串:
{ "name":"\u8d5e\u4e00\u4e0b\u6211\u4eec" }
即使我使用的{{foobar|safe}}话也没有改变.

现在,我想问为什么会发生这种情况或者我有什么不对劲?如果我想直接使用变量,我该怎么办{{ foobar }}

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

    Django的smart_text方法也可能对转换很有用.

    2023-02-07 15:57 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有