今天在經過表單給php提交數據,而後插入到數據庫中。網頁與php的編碼格式均爲utf-8,在插入到數據庫中時也設置了$this->query("set names utf8;");php
可是仍是出現了在mysql中讀取數據出現亂碼和問號的狀況。後來實在是無解,將mysql設置爲gbk編碼,竟然能正確的顯示,簡直就是顛覆了三觀。。至今不知道爲何。mysql
可是在這過程當中也瞭解到了一些有關編碼的知識:sql
在mysql中設置mysql的編碼經過修改配置文件my.ini,該文件在mysql的安裝路徑下。數據庫
[mysql //客戶端服務器
default-character-set=utf8this
[mysqld] //服務器端編碼
character-set-server=utf8server
在mysql客戶端下操做:utf-8
SHOW VARIABLES LIKE 'character%';查看字符集io
SHOW VARIABLES LIKE 'collation_%';
解決亂碼的方法是,在執行SQL語句以前,將MySQL如下三個系統參數設置爲與服務器字符集character-set-server相同的字符集。 character_set_client:客戶端的字符集。 character_set_results:結果字符集。 character_set_connection:鏈接字符集。 設置這三個系統參數經過向MySQL發送語句:set names utf8 即在PHP中執行:mysql_query(「set names utf8」);