5

我使用 django 作为 webapp 的后端。我正在通过 django 发送 json 数据,它运行良好。但是最近我开始处理非 ascii 数据,并注意到非 ascii 字符的一些异常行为。在我的 webapp 中,我的代码如下所示:

def make_json():
  json_string = u{"start_location" : "5802 W 71st St Indianapolis‎ Indiana‎ 46278 United States", "lat" : 39.8819269, "lng" : -86.2631006, "timezone" : "America/Indiana/Indianapolis"}
  return HttpResponse(json_string, content_type='application/json')

Django 没有任何问题,但是当我在浏览器(chrome)中查看它时,我看到的是:

{"start_location" : "5802 W 71st St Indianapolis‎ Indiana‎ 46278 United States", "lat" : 39.8819269, "lng" : -86.2631006, "timezone" : "America/Indiana/Indianapolis"}

我在这里做错了吗?在将 unicode 对象提供给 HttpResponse() 之前,我曾尝试将其编码为 utf-8,但它并没有改变任何东西。

感谢所有的帮助!

4

2 回答 2

11

我想通了。希望有同样问题的朋友可以google一下。

解决方案是将 content_type 更改为:

return HttpResponse(json_string, content_type='application/json; charset=utf-8')
于 2013-06-17T16:16:33.527 回答
5

这是我的贡献,返回模型序列化为 UTF-8 的 json

    dptos = Departamento.objects.all()
    json_list = list(dptos.values())   
    return JsonResponse(json_list,safe=False,json_dumps_params={'ensure_ascii':False})
于 2017-12-20T15:29:56.623 回答