1、Mysql
【注意】client和mysqld的字符集都要修改;windows下为my.ini文件,linux下为my.cnf文件
让MYSQL支持GBK
在 mysql数据库中,使用的是latin字符集,所以无法正常的支持中文字符,中文在数据库中显示为乱码“?”号。为了让mysql可以正常使用中文,尤其是当使用jsp连接mysql的时候,我们需要使用gbk的字符集,因此我们要对mysql进行以下设置,以便其有效的支持中文:
1.修改my.cnf文件
my.cnf文件是mysql的配置文件,我们可以从mysql的安装目录根据其自带模板来
建立
#cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf
#vi /etc/my.cnf
在此文件中相应位置加入
default-character-set = gbk
########################
[client]
default-character-set = gbk
[mysqld]
default-character-set = gbk
#########################
修改结束以后,保存,然后使用客户端登录
#mysql -u root -p
在客户端中输入
>status;
显示的数据中如果出现:
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
则表示修改成功。
2.建立库表时指定gbk字符集
在建立库表的时候我们需要指定gbk字符集
建立数据库:
CREATE DATABASE dbname DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
建立数据表
Create table tablename(
id int(10) unsigned NOT NULL AUTO_INCREMENT,
name varchar(15) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM DEFAULT CHARACTER SET gbk
建立好以后,在客户端中使用:
>show cereate table tablename;
如果最后一行显示gbk,则表示成功
3.修改jdbc驱动
jsp连接mysql需要使用jdbc驱动,在使用的时候,我们需要设置好字符集
String user="root";
String password="123";
String url="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=gbk"
Class.forNname("com.mysql.jdbc.Driver");//装载驱动类;
Connection con=DriverManager.getConnection(url,user,password);//取得连接
其中dbname为你数据库的名字,url中的gbk即为使用的字符集
2、连接mysql的url
url="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=gbk"
3、filter
步骤1:filter
- import java.io.IOException;
- import javax.servlet.Filter;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
-
-
-
-
- public class CharsetEncodingFilter implements Filter {
-
- private String encoding;
-
- public void destroy() {
- }
- public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
- FilterChain filterChain) throws IOException, ServletException {
-
-
- servletRequest.setCharacterEncoding(encoding);
- filterChain.doFilter(servletRequest, servletResponse);
- }
- public void init(FilterConfig filterConfig) throws ServletException {
-
- this.encoding = filterConfig.getInitParameter("encoding");
- }
- }
步骤2.在web.xml配置字符编码
- <filter>
- <filter-name>CharsetEncodingFilter</filter-name>
- <filter-class>com.lx.filter.CharsetEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>GBK</param-value>
- </init-param>
- </filter>
-
- <filter-mapping>
- <filter-name>CharsetEncodingFilter</filter-name>
- <url-pattern>*.jsp</url-pattern> <!--只对提交到的jsp页面起作用-->
- </filter-mapping>
4、jsp
<%@ page contentType= "text/html;charset=gbk" %>
本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/682279,如需转载请自行联系原作者
本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已在2020年6月升级到阿里云开发者社区。如果您发现有涉嫌抄袭的内容,请填写
侵权投诉表单进行举报,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。