Fork me on GitHub

Django 网页中文显示\u开头的乱码

Django JsonResponse返回中文时显示unicode编码(\u67e5\u8be2)

关注公众号“轻松学编程”了解更多。

原因

这个unicode编码,是python3默认返回的编码。

解决方案

JsonResponse里面有个参数json_dumps_params,设置为json_dumps_params={‘ensure_ascii’:False}即可。

    data = {'msg': '创建成功',}
    return JsonResponse(data=data, json_dumps_params={'ensure_ascii': False})

 

字典json序列化与反序列

import json
a = {'hello world': '你好,世界'}
# dumps是序列化
c = json.dumps(a)
# loads是反序列化
print(json.loads(c))

 

输出:

{"hello world": "\u4f60\u597d\uff0c\u4e16\u754c"}

 

这是由于python3返回默认的是unicode编码,如果想显示中文可以增加一个参数ensure_ascii=False:

import json
a = {'hello world': '你好,世界'}
c = json.dumps(a, ensure_ascii=False)
# 
print(json.loads(c))

 

 

输出:

{'hello world': '你好,世界'}

 

另一种写法:

 

return render(request, 'list.html', {"form_list": json.dumps(form_list, ensure_ascii=False)} )

  

posted @ 2021-01-14 11:29  stardsd  阅读(315)  评论(0编辑  收藏  举报