mysql中文亂碼詳細解決方案

mysql中文亂碼詳細解決方案

 

這個是我之前的iteye號上的,現在放在這個號裡面,方便整理 

最近要做畢業設計,以前用的數據庫是oracle,基本上沒出現過中文亂碼的問題。可是畢業設計人在外地,帶的筆記本比較垃圾,oracle根本帶不起。一個eclipse加上一個火狐cpu就已經跑到90%瞭。所以最後決定用mysql數據庫。前臺用的是jsp,使用的編碼格式是utf-8。

 

   不過mysql的中文亂碼讓我糾結瞭許久。經過一番查詢,最終解決瞭。

   一:查看編程環境是否為utf-8

   方法:右鍵項目名稱-屬性 找到文本文件編碼 選擇utf-8.

  www.aiwalls.com  

   二:設置jsp頁面的編碼格式:

   方法:contentType="text/html; charset=utf-8"

            meta http-equiv="Content-Type" content="text/html; charset=utf-8"

   三:設置request和response的編碼格式:

   方法:response.setContentType("text/html ;charset=utf-8");

           request.setCharacterEncoding("utf-8");

   四:編寫過濾器

   五:連接數據庫的方式改為:jdbc:mysql://localhost/databasename?useUnicode=true&characterEncoding=UTF-8

   經過以上5步,如果問題依然沒有解決的話,則有可能是出現在mysql服務器上。

   www.aiwalls.com  

 數據庫方面

 一:首先查看數據庫字符集設置

方法:set character_set_client=utf8;

用這個方法可以看到幾個字符集。

然後用以下命令修改

   set character_set_client=utf8;

   set character_set_connection=utf8;

   set character_set_database=utf8;

   set character_set_results=utf8;

   set character_set_server=utf8;

當然也可以在mysql的安裝目錄下,一般在c盤中的 my.ini下修改凡是看到字符集有關的都修改成utf8

   www.aiwalls.com  

做到這步,基本上從數據庫中取出的數據都是中文,但是還是有可能會出現問題,比如在用dos打開的時候,中文依然顯示為亂碼,而且不能在dos環境下用sql語句插入中文字符。

這時,要把set character_set_results=utf8; 改為 set character_set_results=gbk;

set character_set_client=utf8; 改為 set character_set_client=gbk;

這樣,基本就能解決瞭。

 

發佈留言