關於MYSQL資料庫亂碼問題解決方案

2021-07-08 20:21:43 字數 2077 閱讀 4490

1. 檢視mysql資料庫編碼

* show variables like 'char%';

2. 編碼解釋

* character_set_client:mysql使用該編碼來解讀客戶端傳送過來的資料,例如該編碼為utf8,那麼如果客戶端傳送過來的資料不是utf8,那麼就會出現亂碼

* character_set_results:mysql會把資料轉換成該編碼後,再傳送給客戶端,例如該編碼為utf8,那麼如果客戶端不使用utf8來解讀,那麼就會出現亂碼

其它編碼只要支援中文即可,也就是說不能使用latin1

3. 控制台亂碼問題

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

> 這時因為cmd下預設使用gbk,而character_set_client不是gbk的原因。我們只需讓這兩個編碼相同即可。

> 因為修改cmd的編碼不方便,所以我們去設定character_set_client為gbk即可。

* 查詢出的資料為亂碼:

> 這是因為character_set_results不是gbk,而cmd預設使用gbk的原因。我們只需讓這兩個編碼相同即可。

> 因為修改cmd的編碼不方便,所以我們去設定character_set_results為gbk即可。

* 設定變數的語句:

> set character_set_client=gbk;

> set character_set_results=gbk;

注意,設定變數只對當前連線有效,當退出視窗後,再次登入mysql,還需要再次設定變數。

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

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

4. 指定預設編碼

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

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

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

character_set_client     | utf8 --> mysql把我們客戶端傳遞的資料都當成是utf8!一是給它傳遞utf8,二是如果我們傳遞的是gbk,那麼需要修改這個變數為gbk

character_set_connection | utf8

character_set_database   | utf8

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

character_set_server     | utf8

character_set_system     | utf8

----------------------------

character_set_client=utf8,無論客戶端傳送的是什麼編碼的資料,mysql都當成是utf8的資料!

> 若客戶端傳送的是gbk

> 伺服器會當成utf8對待

> 總結:必然亂碼!

處理問題的手段有兩種;

> 讓客戶端傳送utf8的資料(行不通)

> 把character_set_client修改為gbk

set character_set_client=gbk; --> 只在當前視窗內有效,也就是說,關閉視窗後,再開啟,又回到utf8了。

character_set_results=utf8,把資料用什麼編碼傳送給客戶端!

> 若伺服器傳送給客戶端的是utf8的資料

> 客戶端會把它當成gbk,因為我們的小黑屏,只能顯示gbk

> 總結:必然亂碼!

處理問題的手段有兩種:

> 讓伺服器傳送gbk的資料:set character_set_results=gbk

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

my.ini

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

[client]

port=3306

[mysql]

default-character-set=gbk /*它可以一勞永逸!它可以修改三個變數:client、results、connection*/

Mysql資料庫亂碼問題解決

方法 1 建立資料庫的時候要用utf8編碼 create database news default charset utf8 2 建立資料表的時候也要用utf8編碼 建立,修改 create table xinwen title varchar 20 not null default charse...

mysql 資料庫亂碼問題

mysql 資料庫亂碼問題,按如下順序檢查,一步一步排除出錯位置。最好全部編碼都使用utf8編碼。網頁頁面編碼方式使用utf8 然後檢查連線mysql資料庫時設為utf8 mysql query set character set utf8 con mysql query set names utf...

mysql資料庫的亂碼問題解決

mysql資料庫的亂碼問題解決 1 在mysql安裝路徑下找到my.ini檔案,在client和mysql下新增一句 default character set utf8 2 檢查安裝路徑下data資料夾下,對應資料庫資料夾中db.opt中default collation是否等於utf8 gene...