linux设置mysql中文编码方法详解

作者:简简单单 2013-10-04

#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"); %>

在标签对中添加如下:

 代码如下 复制代码

注意在servlet中对请求进行响应的方法中同样要有:

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

(由于不明原因firefox发送的请求仍然是latin1的时候执行这一步)
在将请求的参数插入数据库之前还要再执行一次转码(将latin1编码转换为utf-8),例如:

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

这一步可以写在一个过滤器中,不怕麻烦也可以在每一次在将请求数据插入之前都进行一次转码。

相关文章

精彩推荐