數(shù)據(jù)庫(kù)中關(guān)于字符集的種類有很多,對(duì)編程有影響的主要是客戶端字符集和數(shù)據(jù)庫(kù)字符集(還有一個(gè)服務(wù)器字符集,不知道干什么用的)。
數(shù)據(jù)庫(kù)中常用的操作就是保存數(shù)據(jù)和讀取數(shù)據(jù),在這過程中,亂不亂碼和數(shù)據(jù)庫(kù)字符集貌似沒有什么關(guān)系。我們只要保證寫入時(shí)選擇的字符集和讀取時(shí)選擇的字符集一致,即只需保證兩次操作的客戶端字符集一致即可。
客戶端字符集的設(shè)置,依據(jù)客戶端不同方法不同:
1. 使用控制臺(tái)連接,在my.ini文件中的client項(xiàng)里面設(shè)置;
2. 使用ems連接,優(yōu)先使用ems連接配置的字符集,默認(rèn)使用my.ini文件中的設(shè)置;
3. jdbc連接,在連接串中指定:
jdbc:mysql://192.168.3.99:3306/test?useUnicode=true&;characterEncoding=gbk
在寫入時(shí)Mysq會(huì)將客戶端指定的字符集轉(zhuǎn)換成數(shù)據(jù)庫(kù)字符集存入數(shù)據(jù)文件,讀取時(shí)又將數(shù)據(jù)庫(kù)字符集轉(zhuǎn)換成客戶端指定的字符集展示給客戶端,把客戶端字符集和數(shù)據(jù)庫(kù)字符設(shè)置一致,顯而易見的好處是免掉轉(zhuǎn)換的性能損耗;另外,如果考慮到以后數(shù)據(jù)庫(kù)的遷移,將數(shù)據(jù)庫(kù)字符集設(shè)置為大多數(shù)數(shù)據(jù)庫(kù)都支持的字符集會(huì)省掉很大麻煩。
幾個(gè)字符集相關(guān)的命令:
1. 查看 MySQL 數(shù)據(jù)庫(kù)服務(wù)器字符集,數(shù)據(jù)庫(kù)字符集和客戶端字符集
| 以下為引用的內(nèi)容: show variables like ’%char%’; character_set_client,客戶端字符集 character_set_database,數(shù)據(jù)庫(kù)字符集 character_set_server,服務(wù)器字符集 2. 查看 MySQL 數(shù)據(jù)表(table) 的字符集 show table status from tablename like ’%countries%’; 3. 查看 MySQL 數(shù)據(jù)列(column)的字符集。 show full columns from tablename; 4. 查看當(dāng)前安裝的 MySQL 所支持的字符集。 show char set; |
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注