关于mysql中汉字的乱码问题

来源:互联网 发布:三对角矩阵 追赶法 编辑:程序博客网 时间:2024/05/07 00:06

    环境是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中取出的就是汉字了,不需要其它的转换,直接写到数据表中也是汉字.

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

原创粉丝点击