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

Django JsonResponse返回中文时显示unicode编码(u67e5u8be2)

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

原因

这个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": "u4f60u597duff0cu4e16u754c"}

这是由于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)} )

  

原文地址:https://www.cnblogs.com/sddai/p/14276321.html