有關mysql數據庫的編碼

今天在經過表單給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」);

相關文章
相關標籤/搜索