天天看點

Mysql編碼|學習筆記Mysql編碼

開發者學堂課程【SQL進階及查詢練習:Mysql編碼】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址: https://developer.aliyun.com/learning/course/36

Mysql編碼

内容簡介:

一 :檢視mysql資料庫編碼

二: 編碼解釋

三: 控制台亂碼問題

四: 指定預設編碼

1.檢視mysql資料庫編碼

 *SHOW VARIABLES LIKE"char:

2.編碼解釋

 *character set client :Mysql使用該編碼來解讀用戶端發送過來的資料,例如該碼為UTF8,那麼如果用戶端發送過來的資料不是utf8,那麼就會出現亂碼

 *character set result:Mysql會把資料轉換成該編碼後,再發送給用戶端,例如該編碼為UTF8,那麼如果用戶端不使用UTF來解讀,那麼就會出現亂碼。其它編碼隻要支援中文即可,也就是說不能使用latin1。

3.控制台亂碼問題

*插入或修改時出現亂碼:

>這是因為cmd預設模式下使用GBK,而character set client不是GBK的原因。我們隻需讓這兩個編碼相同即可。

*查詢出的資料為亂碼:

>這是因為character set results不是GBK,而cmd預設使用GBK的原因。我們隻需讓這兩個編碼相同即可。

>因為修改cmd的編碼不友善,是以我們去設定character set result:為GBK即可。

*設定變量的語句:

>set character set clsent-gbk:

> set character set clsent-gbk:

注意,設定變量隻對目前連接配接有效,當退出視窗後,再次登入mysql,還需再次設定變量。為了一勞永逸,可以在my.ini中設定:

設定default-chararcter-set=gbk即可。

4.   指定預設編碼

     我們在安裝mysql 時已經指定了預設編碼為utf8,是以我們在建立資料庫、建立表時都無需再次制定編碼。

為了一勞永逸,可以在my.ini中設定:

設定charaster-set-server=utf8即可。

 Character set client    | ->mysql把用戶端傳遞的資料都當成是utf8!一是他傳給utf8,二是如果我們傳遞的是x,那麼需要修改這個變量為eastes et. Datas.

Character set connection |  utf8 

Character set results     | utf8 -->mysql發送給客戶的資料都是utf8的,一是客戶用utf8編碼,二是如果用戶端使用gbk來碼,那麼需要修改這個變量為

Character set serever     | utf8 

Character set system     | utf8 

 Character setclient = utf8,,無論客戶發的是什麼的編碼的資料,mysql都當是utf8的資料。

      >若用戶端發送的是GBK

      >伺服器會當成是utf8對待

      >總結:必然亂碼。

處理問題的手段有兩種:

      >讓用戶端發送utf8的資料(行不通)

      >把character_set_client修改為gbk

       Set character_set_client =gbk;-->隻有在目前視窗内有效,是以關閉視窗後再打開,又回到utf8了。

Character_set_result = utf8 ,把資料用什麼編碼發送給用戶端。

     >若伺服器發送給用戶端的是utf8的資料

     >用戶端會把他當成gbk,因為小黑屏,隻能顯示gbk.

     >總結:必然亂碼。

處理問題有兩種手段:

>讓伺服器發送gbk的資料

>讓小黑屏使用utf8來解讀(行不通)

My.in1

  在總配置檔案中進行執行,可以一勞永逸

[client]

 Port=3306

[mysql]

Default-character-set = gbk /*  它可以一勞永逸!它可以修改三個變量:       client、

Result、connectio