linux设置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 Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> show variables like '%char%'; |
上面的就已经显示编码设置成功了
在要发送中文或者要读取中文的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"); |
这一步可以写在一个过滤器中,不怕麻烦也可以在每一次在将请求数据插入之前都进行一次转码。