JSP.MySql乱码问题

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中文的显示与插入问题.

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值