JSP+JDBC+MySql乱码问题最近使用JSP+JDBC+MySql+tomcat做个东西,遇到了烦人的中文乱码问题,整了好几天,综合网友的文章,终于将此问题解决.所以和大家分享一下:问题1.JSP表单接收中文乱码这个最好解决,在接收表单提交的数据之前设置字符集,和JSP页面保持一致:request.setCharacterEncoding("charsetName");比如:<%@ page language="java" contentType="text/html;charset=gb2312"%>...request.setCharacterEncoding("gb2312");String chinese=request.getParameter("chinese");
问题2.数据库表中的中文在JSP页面显示的乱码和数据库插入中文出错的问题我的方法可能只是其中一种,但是很有效,我统一使用gb2312的的字符编码.第一步,更改Mysql数据库的默认字符编码为gb2312,具体如下:修改mySql的配置文件MY.INI,在MY.INI里添加: [mysql] default-character-set=gb2312 [mysqld] default-character-set=gb2312 然后重新启动MYSQL服务。进入Mysql命令行,将使用的数据库的字符编码设置为gb2312:alter databaseName charset=gb2312; 第二步,修改tomcat的字符编码gb2312,具体如下:在tomcat的conf/目录下找到server.xml文件,找到<Connector port="8080"位置(端口号可能是其它的,其实就是你自己设置的端口)在最后增加 URIEncoding="gb2312" 我的设置如下:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="gb2312"/>并重启Tomcat服务 第三步,是JSP中的操作:开头应该是这句话:<%@page contentType="text/html;charset=GB2312" pageEncoding="GB2312"%>字符集和编码都设置成GB2312第四步,是JSP中使用JDBC连接数据库的时候:String sqluri = "jdbc:mysql://localhost:8080/" + dbName + "?useUnicode=true&characterEncoding=utf-8";这里的characterEncoding一定写utf-8.这样就解决了Mysql JSP中文的显示与插入问题.