折騰了兩天,終於解決了。返回json中文亂碼 python
在網上那個找了不少方法,試了都比行,無心間看了一個方法。ok mysql
1.就是mysql數據庫自己編碼的問題。有兩個設置: sql
在mysql命令行環境輸入:show variables like "%char%";
數據庫
mysql5.5以上默認是這個樣子的,不須要更改,一般就用utf8.若是你是別的編碼能夠改一下。網上特別多。 django
2.就是你建立的數據庫,我用的mysql workbench6.3ce,選擇utf8-deault collation認證就能夠的. json
查看你表的編碼用utf8. 編碼
上面兩種是因爲數據庫方面的問題一塊兒的亂碼。 spa
3.若是你在views中直接返回中文的,他會提示錯誤 命令行
SyntaxError: Non-ASCII character '\xe7' views.py on line 27, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details code
這是由於python默認編碼是ascii,因此你要在文件第一行添加一句話:#coding=utf-8。記住是第一行。
4.若是你返回的是json,用的是simplejson.dumps(obj,ensure_ascii=False)把紅色的加上。
5.網上有說
FILE_CHARSET = 'utf-8'
DEFAULT_CHARSET = 'utf-8'
這倆個不用設置的,django默認就是這兩個。
6.我用的就是下面這一種。
data.decode('utf8').encode('gbk')
data就是你的數據。
根據本身的狀況一個一個試試。