中文存入 mysql 資料庫出現的亂碼,從 jsp 頁面讀取 mysql 中文資料出現亂碼,以及在 sell 環境下檢視資料庫表中文資料出現亂碼。為了解決中文亂碼問題,首先是採用同一字符集。本人採用的是
gbk. 1.
安裝mysql後首先修改配置檔案
/etc/my.cnf(注:可能安裝的目錄不同,通過搜尋my.cnf這個檔案就可以方便地找到my.cnf這個目錄)。找到my.cnf這個檔案後,在檔案中新增如下內容(
注:只新增,檔案中的其它內容不需要改變)。
[client]
default-character-set=gbk
[mysqld_safe]
default-character-set=gbk
[mysqld]
default-character-set=gbk
[mysql]
default-character-set=gbk 2.
重新啟動
mysql
服務,進入
sell
終端,進入
mysql
的命令提示符下輸入如下指令:
mysql>show variables like '%char%';
如果出現的列表各項內容和以下相同表明配置成功了,
+---------------------
-+-----
----------------
| variable_name | value
+-----------------------+-
--------------------
|character_set_client | utf8
| character_set_connection | utf8
| character_set_database | utf8 |
character_set_filesystem | binary
| character_set_results | utf8
| character_set_server | utf8
| character_set_system | utf8
| character_sets_dir | /usr/share/mysql/charsets/
+---------------------+
---------------------- 3.
到此基本上解決了
mysql
的中文亂碼問題。最好是重新啟動一下您的作業系統!這樣已做的改變都能及時的生效。
(如果還要出現亂碼的話,最好是寫乙個過濾亂碼的過濾器,一切問題都會解決的).
4.在要傳送中文或者要讀取中文的
jsp頁面(最好所有頁面)都新增如下宣告:
<%@page pageencoding="gbk"%>
<%@ page contenttype="text/html;charset=gbk"%>
<% request.setcharacterencoding("gbk"); %> 在
標籤對中新增如下:
注意在servlet
中對請求進行響應的方法中同樣要有:
response.setcontenttype("text/html;charset=gbk");
(由於不明原因
firefox
傳送的請求仍然是
latin1
的時候執行這一步)
在將請求的引數插入資料庫之前還要再執行一次轉碼(將
latin1
編碼轉換為
utf-8)
,例如:
string
utf8_str
= new string(
latin_str
.getbytes("latin1"),"gbk");
這一步可以寫在乙個過濾器中,不怕麻煩也可以在每一次在將請求資料插入之前都進行一次轉碼。
另外:在連線資料庫的時候可以不用加上字符集引數了,直接用使用者名稱和密碼連線就可以了,如連線:
con=drivermanager.getconnection("jdbc:mysql://localhost:3306/
資料庫名
","使用者名稱
","密碼
");
Linux下 mysql中文亂碼
中文存入 mysql 資料庫出現的亂碼,從 jsp 頁面讀取 mysql 中文資料出現亂碼,以及在 sell 環境下檢視資料庫表中文資料出現亂碼。為了解決中文亂碼問題,首先是採用同一字符集。本人採用的是 gbk.1.安裝mysql後首先修改配置檔案 etc my.cnf 注 可能安裝的目錄不同,通過...
linux下mysql中文亂碼 中文問號 解決辦法
安裝完的mysql的預設字符集為 latin1 為了要將其字符集改為使用者所需要的 比如utf8 就必須改其相關的配置檔案 由於linux下mysql的預設安裝目錄分布在不同的檔案下 不像windows一樣放在同一目錄下,只需修改其中的my.ini檔案,重起後就生效了 所以先來看看linux下mys...
linux下中文亂碼
輸入locale檢視 如果像這種是可以看到中文的 今天無意間執行了命令導致中文全部展示?了 解決辦法 輸入export lc all zh cn.utf 8 etc locale.conf就可以了 方法二 這種方法更有效 vim etc locale.conf lang zh cn.utf 8 la...