一. MySQL字符集類型
MySQL服務器中有六個關鍵位置使用了字符集的概念,他們是:client 、connection、database、results、server 、system。
a、其中client是客戶端使用的字符集,相當於網頁中的字符集設置如下<meta http-equiv="Content-Type" content="text/html; charset=utf-8">。
b、其中的connection是連接數據庫的MySQL字符集設置類型,如果php沒有指明連接數據庫使用的字符集類型,就按照服務器端默認的字符集設置。
c、其中database是數據庫服務器中某個庫使用的字符集設定,如果建庫時沒有指明,將使用服務器安裝時指定的字符集設置。
d、results是數據庫給客戶端返回時使用的MySQL字符集設定,如果沒有指明,使用服務器默認的字符集。
e、server是服務器安裝時指定的默認字符集設定。
f、 system是數據庫系統使用的字符集設定。
PS:
1. system一般默認是utf-8字符集,server是最高的字符集設定,database沒有單獨設定就按照server的字符集設定,其他都是按照server的設定設置字符集。
2. 數據庫內的每個表和字段也都有字符集的概念,一般都是根據上一級結構決定自身的字符集,比如表就根據database庫的設定決定自己的字符集,字段根據表來決定自己的字符集。
二. 統一字符集的方法:(以utf-8字符集來進行安裝)
1. 要徹底解決字符集的方法就是讓MySQL在安裝的時候就是用utf-8的字符集設定(默認為latin1),這樣可以使上面的六個關鍵點的編碼都為utf-8。
2. 使用STATUS命令查看MySQL中各個類別字符集的狀態。
也可用SHOW VARIABLES LIKE 'character_set_%' 查看MySQL字符集的一些設置情況。
三. 若MySQL在安裝時的字符集設置為latin1
可以在建庫時,指定數據庫的字符集為utf8。