標籤:.com unicode set character 字元 方式 cte ike 集合
字元集字元編碼概念
字元(character)是各種文字和符號的總稱,包括各國家文字、標識符號、圖形符號、數字等。
在電腦中所看到的任何內容都是字元構成的。
字元編碼(character code)是電腦針對各種符號,在電腦中的一種二進位儲存代號。
字元集概念
字元集(character set)是多個字元的集合,字元集種類比較多,每個字元集包含的字元個數不同。
常見字元集名稱:ASCII字元集、GB2312字元集、BIG5字元集、GB18030字元集、Unicode字元集等。
簡體中文 繁體中文
MySQL字元集設定
設定用戶端所有字元集
如果直接通過cmd下的mysql.exe進行中文資料插入,那麼可能會出錯。
出錯原因:
1、使用者是通過mysql.exe來操作mysqld.exe
2、真正的SQL執行時mysqld.exe來執行
3、mysql.exe將資料傳入mysqld.exe的時候,沒有告知其對應的符號規則(字元集),而mysqld也沒有能力自己判斷,就會使用自己預設的(字元集)
解決方案:mysql.exe用戶端在進行資料操作之前將自己使用的字元集告訴mysqld,cmd下mysql.exe預設的只有一個字元集:GBK。
mysql.exe如何告知mysqld.exe對應的字元集類型為gbk?
捷徑:set names 字元集;
深層原理:用戶端,服務端,串連層(show variables like ‘character_set%’)
mysql.exe 與mysqld.exe之間的處理關係一共分為三層:
用戶端傳入資料給服務端:client : character_set_client
服務端返回資料給用戶端:server : character_set_results
用戶端與服務端之間的串連:connection : character_set_connection
set names 字元集 的本質:就是一次打通三層關係的字元集,變得一致。
在系統中有三個變數來記錄著這三個關係對應的字元集:show variables like ‘character_set%’;
查看一個新的用戶端對應的字元集關係
修改伺服器端變數的值:
set 變數名 = 值;
set character_set_client = gbk;
重新進行資料插入和查看的結果:插入OK,但是查看亂碼。
修改結果字元集為gbk
connection只是為了更方便用戶端與服務端進行字元集轉換而設。
set names gbk:
set character_set_client = gbk; //為了讓服務端識別用戶端傳來的資料
set character_set_connection = gbk; //更好的協助用戶端與服務端之間進行字元集轉換
set character_set_results = gbk; //為了告訴用戶端服務端所有的返回的資料字元集
MySQL資料庫8(六)字元集