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-uroot-proot
- WelcometotheMySQLmonitor.Commandsendwith;org.
- YourMySQLconnectionidis2toserverversion:5.0.22
- Type'help;'or'h'forhelp.Type'c'toclearthebuffer.
- mysql>showvariableslike'%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|--phpfensi.com
- |character_set_system|utf8|
- |character_sets_dir|/usr/share/mysql/charsets/|
- +--------------------------+----------------------------+
- 8rowsinset(0.00sec)
上面的就已经显示编码设置成功了,在要发送中文或者要读取中文的JSP页面,最好所有页面,都添加如下声明:
- <%@pagepageEncoding="gbk"%>
- <%@pagecontentType="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");
这一步可以写在一个过滤器中,不怕麻烦也可以在每一次在将请求数据插入之前都进行一次转码.
热门评论