解決MySQL中文亂碼問題

2021-07-03 04:15:09 字數 1827 閱讀 7361

最近使用mysql server 5.0的時候會遇到亂碼問題;所以在網上找了一些資料,再加上自己的親身經歷寫下這個文章。

mysql會出現中文亂碼的原因幾點:

1.server本身設定問題,例如還停留在latin1

2.table的語系設定問題(包含character與collation)

3.客戶端程式(例如php)的連線語系設定問題

建議使用

utf8

,相容世界所有字元。

當遇到亂碼問題:

首先,我們要先檢視mysql預設的編碼格式

,**如下:

mysql> show variables like '%character_set%';

+--------------------------+---------------+

| variable_name | value |

+--------------------------+---------------+

| character_set_client | gbk |

| character_set_connection | gbk |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | gbk |

| character_set_server | utf8 |

| character_set_system | utf8 |

+--------------------------+-------------+

注:以前2個來確定,可以使用set names utf8,set names gbk設定預設的編碼格式;

執行set names utf8的效果等同於同時設定如下:

set character_set_client='utf8';

set character_set_connection='utf8';

set character_set_results='utf8';

逐個設定。

如果這樣做完還是解決不了你的亂碼問題,那終極絕招就來了:

mysql修改配置檔案:

找到mysql server 5.0安裝目錄下的my.ini檔案

開啟找到兩處default-character-set都給它設定成utf8如下:

第一處:

[mysql]下的

default-character-set=utf8

第二處:

[mysqld]下的

default-character-set=utf8

儲存,重啟mysql服務(必須重啟不然資料庫預設設定雖然改了,但是當前資料庫編碼還是上次啟動服務的設定)

步驟如下:

1.右鍵計算機-->管理-->服務和應用程式-->服務-->找到mysql-->右鍵重啟。

最後總結下各種亂碼問題最終就是因為資料儲存格式與取出顯示格式不匹配,若出現亂碼問題,不但要檢查mysql中編碼格式,還要從呼叫資料庫的地方檢查例如:

jdbcodbc橋接 :

class.forname("com.mysql.jdbc.driver");

conn = drivermanager

.getconnection(

"jdbc:mysql://localhost:3306/onlineshopping?useunicode=true&characterencoding=utf-8",

"root", "123456");

等等...

以上純屬個人經驗及參考資料得來,如有不足,望大家指點。

mysql 解決中文亂碼問題

mysql 解決中文亂碼問題 網上說解決mysql 解決中文亂碼問題滿天飛,多如牛毛,很多都不能解 決,其實最快的解決方式就是在註冊載入驅動的時候直接在後面加上一串東西 userssl true useunicode true characterencoding utf8 servertimezon...

解決MySQL中文亂碼問題

決解亂碼費了我好些時間啊!亂碼原因有 1.mysql未設定為支援漢字 2.沒有傳送頭資訊 3.使用的編譯器不符合相應的編碼 決解的方法是 在mysql裡 我用的是wanmp server 1.在mysql目錄下找到my.ini,在 client 新增default character set utf...

解決mysql中文亂碼問題?

mysql是我們專案中非常常用的資料型資料庫。但是因為我們需要在資料庫儲存中文字元,所以經常遇到資料庫亂碼情況。下面就來介紹一下如何徹底解決資料庫中文亂碼情況。1.1 中文亂碼 1 create table user name varchar 11 建立user表 2 insert into tab...