关于mysql中汉字的乱码问题

本文介绍了一种在特定环境下(JDK1.5、TOMCAT5.0、MYSQL5.1)保持JSP页面、JAVA处理程序及数据库编码统一的方法,并针对gb2312编码下POST提交中文乱码的问题提供了具体的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    环境是JDK1.5,TOMCAT5.0 MYSQL5.1我们要保证三方的编码一致即页面方,处理方,数据库方。假设现在我们的统一编码为gb23121>JSP页面必须包括     <%@ page contentType="text/html; charset=gb2312" %>2>JAVA中数据库连接中包括
     在后台java处理程序中加上 request.setCharacterEncoding("gb2312");
     this.URL = "jdbc:mysql://127.0.0.1/demobase?useUnicode=true&characterEncoding=gb2312"
3>mysql5中所建立的数据库应为gd2312 该库下的表也要为gd2312
 如果你用的客户端工具为mysql-front则在建库和建表时都可以设置编码

这样保持三方统一编码,才可能保持入库的为中文,从数据库中取数据,写到页面上为中文,但是在实践还是有点问题,即当页面以POST提交到后台后,如果提交的表单,在后台有为其写一个formBean的话(即包含set() get()方法的bean)则同样从页面传到后台JAVA程序中还是乱码,且为ISO8859-1编码,最好还是通过以下方法转换一下 vaName=new String(vaName.getBytes("ISO8859-1"),"gb2312"); 这样写到数据库中的才是汉字. 但是如果前台提交的的表单,没有对应的fromBean, 则在执行完request.setCharacterEncoding("gb2312"); 后在request中取出的就是汉字了,不需要其它的转换,直接写到数据表中也是汉字.

      这个问题很奇怪,查了很多资料也没有结果,不过可能我的这只是一个特例. 可以参考
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值