MySQL字符集:保證不發(fā)生亂碼的方法
導讀:數(shù)據(jù)庫中關于字符集的種類有很多,對編程有影響的主要是客戶端字符集和數(shù)據(jù)庫字符集(還有一個服務器字符集,不知道干什么用的)。數(shù)據(jù)庫中常用的操作就是保存數(shù)據(jù)和讀取數(shù)據(jù),在這過程中,亂不亂碼和數(shù)據(jù)庫字符集貌似沒有什么關系。我們只要保證寫入時選擇的字符集和讀取時選擇的字符集一致,即只需保證兩次操作的客戶端字符集一致即可。
客戶端字符集的設置,依據(jù)客戶端不同方法不同:
1. 使用控制臺連接,在my.ini文件中的client項里面設置;
2. 使用ems連接,優(yōu)先使用ems連接配置的字符集,默認使用my.ini文件中的設置;
3. jdbc連接,在連接串中指定:
jdbc:mysql://192.168.3.99:3306/test?useUnicode=true&;characterEncoding=gbk
在寫入時Mysq會將客戶端指定的字符集轉換成數(shù)據(jù)庫字符集存入數(shù)據(jù)文件,讀取時又將數(shù)據(jù)庫字符集轉換成客戶端指定的字符集展示給客戶端,把客戶端字符集和數(shù)據(jù)庫字符設置一致,顯而易見的好處是免掉轉換的性能損耗;另外,如果考慮到以后數(shù)據(jù)庫的遷移,將數(shù)據(jù)庫字符集設置為大多數(shù)數(shù)據(jù)庫都支持的字符集會省掉很大麻煩。
幾個字符集相關的命令:
1. 查看 MySQL 數(shù)據(jù)庫服務器字符集,數(shù)據(jù)庫字符集和客戶端字符集
以下為引用的內(nèi)容:
show variables like ’%char%’;
character_set_client,客戶端字符集
character_set_database,數(shù)據(jù)庫字符集
character_set_server,服務器字符集
2. 查看 MySQL 數(shù)據(jù)表(table) 的字符集
show table status from tablename like ’%countries%’;
3. 查看 MySQL 數(shù)據(jù)列(column)的字符集。
show full columns from tablename;
4. 查看當前安裝的 MySQL 所支持的字符集。
show char set;
這就是我要為大家介紹的MySQL字符集的全部內(nèi)容,從文中可以看出MySQL字符集是非常有效的解決數(shù)據(jù)庫亂碼問題,大家以后如果遇到亂碼問題,就可以參照文中的內(nèi)容,去解決亂碼問題。
【編輯推薦】