字元集

字元集的重點知識

我們只需要了解:

1.    常用字元集

2.    資料庫中我們用什麼字元集

英文字元集:

QQ截图20161009151258.png

ASCII

ASCII 碼使用指定的7 位元或8 位元二進位數組合來表示128 或256 種可能的字元。標準ASCII 碼也叫基礎ASCII碼,使用7 位元二進位數來表示所有的大寫和小寫字母,數字0 到9、標點符號, 以及在美式英語中使用的特殊控製字元。
其中:
0~31及127(共33個)是控製字元或通訊專用字元(其餘為可顯示字元),如控制符:LF(換行)、CR(Enter)、FF(換頁)、DEL(刪除)、BS( 、10 和13 分別轉換為退格、製表、換行和回車字元。它們並沒有特定的圖形顯示,但會依不同的應用程序,而對文字顯示有不同的影響。
32~126(共95個)是字元(32是空格),其中48~57為0到9十個阿拉伯數字。
65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其餘為一些標點符號、運算符號等。

GBK

GBK 向下與 GB 2312 編碼相容。是中華人民共和國定義的漢字計算機編碼規範。早期版本為GB2312。

Unicode

Unicode(統一碼、萬國碼、單碼)Unicode是國際組織制定的可以容納世界上所有文字和符號的字元編碼方案。以滿足跨語言、跨平台進行文字轉換、處理的要求。

UTF-8

是針對Unicode的可變長度字元編碼,也是萬國碼。因為UNICODE比ASCII佔用大一倍的空間,而對ASCII來說高位元組的0對他毫無用處。為了解決這個問題,就出現了一些中間格式的字元集,他們被稱為通用轉換格式,即UTF(Universal Transformation Format)

#實際工作中要使用的編碼

在中文常用的字元集分為utf-8和GBK。

實際使用的如下:

QQ截图20161009151421.png

觀察(圖一)的特色你會發現,MySQL字元集由三個部份組成:
1.字元集 
2.語言
3.類型

#最後的bin是指二進位字元集,後面的ci是指儲存排序時不區分字元的大小寫。

注意:
mysql在寫utf-8的時候寫的是utf8。不加中間的中橫線。

(圖一)

QQ截图20161009151437.png

#

1.關於MySQL字元集

MySQL的字元集支援(Character Set Support)有兩個面向: 

 字元集(Character set)和排序方式(Collat​​ion)。

MySQL對於字元集的支援細化到四個層次: 伺服器(server),資料庫(database),資料表(table)和連線(connection)。

MySQL對於字元集的指定可以細化到一個資料庫,一張表,一列,應該用什麼字元集。

2.查看MySQL字元集

2.1.查看字元集的設定

mysql> show variables like 'character_set_%';

QQ截图20161009151450.png


2.2.查看字元集排序設定

mysql> show variables like 'collation_%';

QQ截图20161009151503.png


#3.修改MySQL字元集

##3.1修改伺服器等級字元集

a.暫時修改

mysql>SET GLOBAL character_set_server=utf8;

b.永久修改

 開啟/etc/mysql/my.cnf,在[mysqld]後新增character-set- server=utf8

3.2修改資料庫層級 

a.臨時變更

mysql>SET GLOBAL character_set_database=utf8;

b. 永久變更

改了伺服器層級就可以了

3.3修改表級 

mysql>ALTER TABLE table_name DEFAULT CHARSET utf8;

更改了後永久生效


3.4修改列級修改範例

mysql>ALTER TABLE `products` CHANGE `products_model` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; 更改了后永久生效

3.5更改連接字元集

 a. 暫時變更:mysql> SET GLOBAL character_set_client;

b. 永久變更:開啟/etc/mysql/my.cnf,在[client]後面加上default-character-set=utf8

 


#

繼續學習
||
<?php echo "Hello Mysql"; ?>