關於mysql編碼問題

2022-04-02 06:03:11 字數 1350 閱讀 3468

show variables like 'char%';

因為當初安裝時指定了字符集為utf8,所以所有的編碼都是utf8。

l  character_set_client:你傳送的資料必須與client指定的編碼一致!!!伺服器會使用該編碼來解讀客戶端傳送過來的資料;

l  character_set_connection:通過該編碼與client一致!該編碼不會導致亂碼!當執行的是查詢語句時,客戶端傳送過來的資料會先轉換成connection指定的編碼。但只要客戶端傳送過來的資料與client指定的編碼一致,那麼轉換就不會出現問題;

l  character_set_database:資料庫預設編碼,在建立資料庫時,如果沒有指定編碼,那麼預設使用database編碼;

l  character_set_server:mysql伺服器預設編碼;

l  character_set_results:響應的編碼,即查詢結果返回給客戶端的編碼。這說明客戶端必須使用result指定的編碼來解碼;

修改character_set_client、character_set_results、character_set_connection為gbk,就不會出現亂碼了。但其實只需要修改character_set_client和character_set_results。

控制台的編碼只能是gbk,而不能修改為utf8,這就出現乙個問題。客戶端傳送的資料是gbk,而character_set_client為utf8,這就說明客戶端資料到了伺服器端後一定會出現亂碼。既然不能修改控制台的編碼,那麼只能修改character_set_client為gbk了。

伺服器傳送給客戶端的資料編碼為character_set_result,它如果是utf8,那麼控制台使用gbk解碼也一定會出現亂碼。因為無法修改控制台編碼,所以只能把character_set_result修改為gbk。

l  修改character_set_client變數:set character_set_client=gbk;

l  修改character_set_results變數:set character_set_results=gbk;

設定編碼只對當前連線有效,這說明每次登入mysql提示符後都要去修改這兩個編碼,但可以通過修改配置檔案來處理這一問題:配置檔案路徑:d:\program files\mysql\mysql server 5.1\ my.ini

使用mysql工具是不會出現亂碼的,因為它們會每次連線時都修改character_set_client、character_set_results、character_set_connection的編碼。這樣對my.ini上的配置覆蓋了,也就不會出現亂碼了。

mysql是否編碼 關於mysql編碼問題

1 檢視mysql編碼 show variables like char 因為當初安裝時指定了字符集為utf8,所以所有的編碼都是utf8。l character set client 你傳送的資料必須與client指定的編碼一致!伺服器會使用該編碼來解讀客戶端傳送過來的資料 l character...

MYSQL中關於編碼問題

我們需要使用mysql語句 show variables like char 可查詢到當前的內容 character set client utf8 mysql把我們客戶端傳遞的資料都當成是utf8 也是給它傳遞utf8,如果我們傳遞的是gbk,那麼需要修改這個變數為gbk character se...

mysql中的編碼問題 mysql編碼問題總結

網上查了一些mysql編碼相關的資料,在這裡整理下,不對的地方歡迎各位批評指正。character set server 預設的內部操作字符集 character set connection 連線層字符集 character set results 查詢結果字符集 character set da...