mysql中文亂碼詳細解決方案
這個是我之前的iteye號上的,現在放在這個號裡面,方便整理
最近要做畢業設計,以前用的數據庫是oracle,基本上沒出現過中文亂碼的問題。可是畢業設計人在外地,帶的筆記本比較垃圾,oracle根本帶不起。一個eclipse加上一個火狐cpu就已經跑到90%了。所以最後決定用mysql數據庫。前台用的是jsp,使用的編碼格式是utf-8。
不過mysql的中文亂碼讓我糾結了許久。經過一番查詢,最終解決了。
一:查看編程環境是否為utf-8
方法:右鍵項目名稱-屬性 找到文本文件編碼 選擇utf-8.
www.2cto.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.2cto.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.2cto.com
做到這步,基本上從數據庫中取出的數據都是中文,但是還是有可能會出現問題,比如在用dos打開的時候,中文依然顯示為亂碼,而且不能在dos環境下用sql語句插入中文字符。
這時,要把set character_set_results=utf8; 改為 set character_set_results=gbk;
set character_set_client=utf8; 改為 set character_set_client=gbk;
這樣,基本就能解決了。