django亂碼問題

折騰了兩天,終於解決了。返回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就是你的數據。

根據本身的狀況一個一個試試。

相關文章
相關標籤/搜索