字元集
字元集的重點(diǎn)知識(shí)
我們只需要了解:
1.??? 常用字元集
2.??? 資料庫(kù)中我們用什麼字元集
英文字元集:
ASCII
ASCII 碼使用指定的7 位元或8 位元二進(jìn)位數(shù)組合來(lái)表示128 或256 種可能的字元。標(biāo)準(zhǔn)ASCII 碼也叫基礎(chǔ)ASCII碼,使用7 位元二進(jìn)位數(shù)來(lái)表示所有的大寫(xiě)和小寫(xiě)字母,數(shù)字0 到9、標(biāo)點(diǎn)符號(hào), 以及在美式英語(yǔ)中使用的特殊控製字元。
其中:
0~31及127(共33個(gè))是控製字元或通訊專用字元(其餘為可顯示字元),如控制符:LF(換行)、CR(Enter)、FF(換頁(yè))、DEL(刪除)、BS( 、10 和13 分別轉(zhuǎn)換為退格、製表、換行和回車(chē)字元。它們並沒(méi)有特定的圖形顯示,但會(huì)依不同的應(yīng)用程序,而對(duì)文字顯示有不同的影響。
32~126(共95個(gè))是字元(32是空格),其中48~57為0到9十個(gè)阿拉伯?dāng)?shù)字。
65~90為26個(gè)大寫(xiě)英文字母,97~122號(hào)為26個(gè)小寫(xiě)英文字母,其餘為一些標(biāo)點(diǎn)符號(hào)、運(yùn)算符號(hào)等。
GBK
GBK 向下與 GB 2312 編碼相容。是中華人民共和國(guó)定義的漢字計(jì)算機(jī)編碼規(guī)範(fàn)。早期版本為GB2312。
Unicode
Unicode(統(tǒng)一碼、萬(wàn)國(guó)碼、單碼)Unicode是國(guó)際組織制定的可以容納世界上所有文字和符號(hào)的字元編碼方案。以滿足跨語(yǔ)言、跨平臺(tái)進(jìn)行文字轉(zhuǎn)換、處理的要求。
UTF-8
是針對(duì)Unicode的可變長(zhǎng)度字元編碼,也是萬(wàn)國(guó)碼。因?yàn)閁NICODE比ASCII佔(zhàn)用大一倍的空間,而對(duì)ASCII來(lái)說(shuō)高位元組的0對(duì)他毫無(wú)用處。為了解決這個(gè)問(wèn)題,就出現(xiàn)了一些中間格式的字元集,他們被稱為通用轉(zhuǎn)換格式,即UTF(Universal Transformation Format)
#實(shí)際工作中要使用的編碼
在中文常用的字元集分為utf-8和GBK。
實(shí)際使用的如下:
觀察(圖一)的特色你會(huì)發(fā)現(xiàn),MySQL字元集由三個(gè)部份組成:
1.字元集?
2.語(yǔ)言
3.類型
#最後的bin是指二進(jìn)位字元集,後面的ci是指儲(chǔ)存排序時(shí)不區(qū)分字元的大小寫(xiě)。
注意:
mysql在寫(xiě)utf-8的時(shí)候?qū)懙氖莡tf8。不加中間的中橫線。
(圖一)
1.關(guān)於MySQL字元集
MySQL的字元集支援(Character Set Support)有兩個(gè)面向:?
?字元集(Character set)和排序方式(Collat??ion)。
MySQL對(duì)於字元集的支援細(xì)化到四個(gè)層次: 伺服器(server),資料庫(kù)(database),資料表(table)和連線(connection)。
MySQL對(duì)於字元集的指定可以細(xì)化到一個(gè)資料庫(kù),一張表,一列,應(yīng)該用什麼字元集。
2.查看MySQL字元集
2.1.查看字元集的設(shè)定
mysql> show variables like 'character_set_%';
2.2.查看字元集排序設(shè)定
mysql> show variables like 'collation_%';
#3.修改MySQL字元集
##3.1修改伺服器等級(jí)字元集a.暫時(shí)修改mysql>SET GLOBAL character_set_server=utf8;b.永久修改?開(kāi)啟/etc/mysql/my.cnf,在[mysqld]後新增character-set- server=utf83.2修改資料庫(kù)層級(jí)?a.臨時(shí)變更
mysql>SET GLOBAL character_set_database=utf8;b. 永久變更改了伺服器層級(jí)就可以了
3.3修改表級(jí)?
mysql>ALTER TABLE table_name DEFAULT CHARSET utf8;更改了後永久生效
mysql>ALTER TABLE `products` CHANGE `products_model` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; 更改了后永久生效3.5更改連接字元集?a. 暫時(shí)變更:mysql> SET?GLOBAL character_set_client;b. 永久變更:開(kāi)啟/etc/mysql/my.cnf,在[client]後面加上default-character-set=utf8
?
#