解决JsonResponse返回中文乱码的问题


#使用 HttpResponse 代替 JsonResponse 解决JsonResponse返回中文乱码的问题
import json
from django.shortcuts import HttpResponse
from django.http import JsonResponse
from databases_models import models

def get(request):
publish_list = models.Publish.objects.all()
bs = MySer.PublishSerializer(publish_list, many=True)
#return JsonResponse(bs.data, safe=False, )
   return HttpResponse(json.dumps(bs.data,ensure_ascii=False),content_type='application/json')
# 当返回的中文是乱码时,这时由于ascii码的原因,JsonResponse()在初始化的时候使用了json.dumps()把字典转换成了json格式
# ensure_asciifalse的时候,可以返回ASCII码的值,否则就会被JSON转义
# 所以含有中文的字典转json字符串时,使用json.dumps()方法要把ensure_ascii参数修改成false
# content_type是指定MIME类型和编码,这样客户端知道主体是什么类型的资源,才能调用相应的插件或内置的程序去处理
posted @ 2020-09-26 10:06  chenjianwen  阅读(2853)  评论(0编辑  收藏  举报