1. 程式人生 > >解決mysql和視覺化工具Navicat與web應用中資料庫傳輸中文亂碼問題

解決mysql和視覺化工具Navicat與web應用中資料庫傳輸中文亂碼問題

  關於網上解決亂碼的問題有許多也很成熟了,將mysql和他的視覺化工具Navicat之間統一編碼問題也有許多,本篇文章旨在回顧mysql與Navicat之間的統一編碼的所有方式,和web應用中傳輸中文亂碼做統一規劃,由於本人水有限,文中有不少錯誤的地方望批評改正。

  
   大家都知道,之所以亂碼是因為編碼和解碼不統一所造成的,當然,我們所熟知的編碼格式中UTF-8,想必非常熟悉,UTF-8是國際編碼,能解析所有字元,故一般網站採用UTF-8編碼。

   mysql方面編碼問題統一UTF-8解決方案

修改mysql安裝目錄下my.ini檔案:

  開啟mysql預設安裝路徑下的my.ini檔案,

設定  default-character-set=utf8 ,當然,需要你在建資料庫之前和建表之前設定,

然後,設定資料庫xxxx的編碼格式:

ALTERDATABASE `xxx` DEFAULTCHARACTER SET utf8 COLLATE utf8_general_ci; 然後,設定xxx表的編碼格式為utf-8:
ALTERTABLE `testTable` DEFAULT CHARACTERSET utf8 COLLATEutf8_general_ci; 好了,然後檢視資料庫編碼格式: showcreate database xxx; 為utf-8則說明編碼設定完成了

好了,然後檢視資料庫表的編碼格式:

showcreate tabletestTable;

設定完成!MySql統一了utf-8編碼.

Navicat工具設定編碼解決方案:

很簡單,開啟工具,新建連線,開啟高階選項,設定如介面所示:

編碼設定自動就可以, 當然 ,也可以在該工具設定資料庫和表編碼格式,很簡單不做介紹了,右鍵表物件 資訊就可設定。

Web應用中設定編碼解決方案:

上述步驟設定完成後,我們做一個jsp介面用於過去mysql中的資料,並將表的資料呈現出來,設定可以編輯,和新增操作,

當然,還要設定編碼格式:

然後,在java中獲取連線時指定utf-8編碼:

// 獲取資料庫連線。 三個引數分別為 連線URL,使用者名稱,密碼
        conn = DriverManager.getConnection(
                            "jdbc:mysql://localhost:3306/databaseWeb?charracterEncoding=UTF-8",
                            "root",
                            "root");
       

指定charracterEncoding=UTF-8

然後,設定request和response編碼統一,當然,推薦設定在filter中:

好了,啟動伺服器,開啟網頁:

沒問題,然後點選修改儲存:

還是沒問題,

當然,你通過MySql命令列檢視,和通過視覺化工具Navicat編輯檢視,和網頁上讀取和設定中文然後讀入mysql,都沒有出現亂碼問題,

至此,亂碼問題全部解決。