萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> linux設置mysql中文編碼方法詳解

linux設置mysql中文編碼方法詳解

一般情況下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"%>
<%@ page contentType="text/html;charset=gbk"%>
<% request.setCharacterEncoding("gbk"); %>

在<head>標簽對中添加如下:

 代碼如下 復制代碼 <meta http-equiv="Content-Type" content="text/html; charset=gbk">

注意在servlet中對請求進行響應的方法中同樣要有:

 代碼如下 復制代碼 response.setContentType("text/html;charset=gbk");

(由於不明原因firefox發送的請求仍然是latin1的時候執行這一步)
在將請求的參數插入數據庫之前還要再執行一次轉碼(將latin1編碼轉換為utf-8),例如:

 代碼如下 復制代碼 String utf8_str = new String( latin_str .getBytes("latin1"),"gbk");

這一步可以寫在一個過濾器中,不怕麻煩也可以在每一次在將請求數據插入之前都進行一次轉碼。

copyright © 萬盛學電腦網 all rights reserved