在使用mysql5.7時,會發現通過web端向數據庫中寫入中文后會出現亂碼,但是在數據庫中直接操作SQL語句插入數據后中文就顯示正常,這個問題怎么解決呢?此處不對MySQL的數據編碼過程和原理進行講解,如果有興趣的同學可以自己百度。
下面我們就直接使用如下操作解決:
一、打開mysql控制臺,輸入命令show variables like 'character%';
顯示如下:
| +--------------------------+-------------------------------------------+| Variable_name | Value |+--------------------------+-------------------------------------------+| character_set_client | latin1 || character_set_connection | latin1 || character_set_database | utf8 || character_set_results | latin1 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | C:/MySQL/MySQL Server 5.0/share/charsets/ |+--------------------------+-------------------------------------------+ | 
二、修改my.ini文件
| [client] default-character-set=utf8 [mysqld] default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci | 
三、重啟后使用第一步的命令查看,如下:
| +--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | latin1 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+ | 
還有character_set_database和character_set_server的默認字符集還是latin1。
四、輸入命令:set names utf8;
重啟后,使用第一步命令查看:
| +--------------------------+------------------------------------------------+| Variable_name | Value |+--------------------------+------------------------------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | C:/wamp64/bin/mysql/mysql5.7.9/share/charsets/ |+--------------------------+------------------------------------------------+ |