1. 程式人生 > 實用技巧 >python測試開發django(14)--JsonResponse返回中文編碼問題

python測試開發django(14)--JsonResponse返回中文編碼問題

前言

django查詢到的結果,用JsonResponse返回在頁面上顯示類似於

\u738b\u7f8e\u4e3d,注意這個不叫亂碼,這個是unicode編碼,python3預設返回的編碼
遇到問題
接著前面的Users表,測試資料如下

接著上一篇,如果資料庫裡面有中文的資料,返回的json資料中文不能正常顯示,頁面展示內容如下:

解決辦法

JsonResponse裡面有個引數json_dumps_params,設定為json_dumps_params={'ensure_ascii':False}即可;

json_dumps_params:在1.9版本中新增,可以傳遞一個python標準的json庫中,json.dump()方法處理後的物件給它,用於生成一個響應。

修改後程式碼(上一篇的三種方法都適用)

def json_data(request):
    datas={}
    r=Users.objects.all().values()
    datas["data"]=list(r)
    return JsonResponse(datas,safe=False,
                        json_dumps_params={'ensure_ascii':False})

在urls.py配置訪問地址

url('^jd$',dbtest.json_data),訪問後得到的結果