一般情況下mysql編碼我們在安裝時就可以選擇定了,但在liunx中要能不如windows方便,下面我來介紹在liunx中修改mysql編碼吧。
#vi /etc/my.cnf
打開my.cnf修改編碼
vi /etc/my.cnf
在[mysqld]下添加
代碼如下 復制代碼default-character-set=utf8
或者 default-character-set=gbk
在[client]下添加
default-character-set=utf8
或者 default-character-set=gbk
重啟MYSQL即可。
如果不知道MYSQL在哪個地方,運行
代碼如下 復制代碼 #whereis mysql即可找到MYSQL安裝在哪個地方
如果想查設置是不是成功了,可以運行如下命令:
代碼如下 復制代碼# mysql -u root -proot
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2 to server version: 5.0.22
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
上面的就已經顯示編碼設置成功了
在要發送中文或者要讀取中文的JSP頁面(最好所有頁面)都添加如下聲明:
代碼如下 復制代碼 <%@page pageEncoding="gbk"%>在<head>標簽對中添加如下:
代碼如下 復制代碼 <meta http-equiv="Content-Type" content="text/html; charset=gbk">注意在servlet中對請求進行響應的方法中同樣要有:
代碼如下 復制代碼 response.setContentType("text/html;charset=gbk");(由於不明原因firefox發送的請求仍然是latin1的時候執行這一步)
在將請求的參數插入數據庫之前還要再執行一次轉碼(將latin1編碼轉換為utf-8),例如:
這一步可以寫在一個過濾器中,不怕麻煩也可以在每一次在將請求數據插入之前都進行一次轉碼。