我在學習django中admin模塊的時候,登錄進入后台操作頁面,輸入中文數據,但保存之后全是亂碼(全是“????????????”),然后就開始了解決問題之路。
1、首先百度搜索,最主流的方法也是一勞永逸的方法是:修改MySQL的配置文件my.ini。我也是按照這個方法做的,只是搜索出來的方法不詳細,或者說不適合MySQL的新版本。
2、在MySQL根目錄下尋找my.ini配置文件,然而我裝的是MySQL-5.6.30,在根目錄下只找到了my-default.ini文件。把my-default.ini重命名為my.ini,並按照如下格式在文件中的[mysql]和[client]中添加如下語句:
[mysqld] character_set_server = utf8 character_set_client = utf8 [client] default-character-set = utf8
3、之后在path環境變量中添加MySQL的根路徑和根路徑下的bin路徑。(如果之前已設置,並且MySQL的路徑沒有改變,這一步可以忽略)
4、以管理員權限運行cmd命令行,執行如下步驟,安裝或者重新安裝mysql(注意紅色mysqld和黑色mysql的區別):
4.1、如果之前安裝了MySQL,需要卸載MySQL,在命令行中執行:mysqld --remove
4.2、執行:mysqld --install
4.3、執行:net start mysql
4.4、登錄mysql:mysql -u root -p
4.5、在mysql的命令行操作中,輸入:show variables like 'charac%';
顯示如下圖所示的結果,mysql數據庫中就可以正常存儲中文數據了。

注意:1、在第2步中,不能把下面這個設置選項
default-character-set = utf8
放在
[mysqld]
模塊中。如果是這樣,在安裝或者重新安裝mysql的過程中,可以正確執行4.1和4.2,但執行4.3的時候會報如下圖的錯誤:

2、我的mysql數據庫在修改編碼配置之前顯示的默認配置結果為(當然不同的版本默認配置可能不一樣):

