使用mysql5.7時,會發現透過web端向資料庫寫入中文後會出現亂碼,但在資料庫中直接操作SQL語句插入資料後中文就顯示正常,這個問題怎麼解決呢,下面小編給大家分享下解決方案
在使用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\ | +--------------------------+------------------------------------------------+
除了character_set_filesystem是binary外,其他都是utf8了,
這樣在web端也設定成utf8編碼就可以正常輸入資料庫了。
以上是詳解Mysql5.7中文亂碼問題的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!