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)} )
如果这篇文章帮助到了你,你可以请作者喝一杯咖啡