我的MySQL在命令窗口中 打插入命令能插入中文,但是用Java程序插入是就变成乱码了?我的MySQL中的文件my.ini中的default-character-set=gb2312;
我的连接是:conn = DriverManager.getConnection("jdbc:mysql://localhost/students?user=root&password=123321&useUnicode=true&characterEncoding=gb2312");
谁能帮我解决这个问题啊!!!!

解决方案 »

  1.   

    1 ?useUnicode=true&characterEncoding=中间用& 看看,2 你在插入前,把数据打印出来,看看是不是已经是乱码了。呵呵!
      

  2.   

    使用servlet向数据库(mysql5.0)中插入数据的时候,为什么写进去的数据都是乱码
      

  3.   

    竹老师你好,我查了一下 我从struts中的Action得倒的就是乱码,我的注册页面里面写的是<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
      

  4.   

    刚刚处理过这方面的东西,现在我来总结一下:
    struts乱码基本一般就是出现在页面显示,表单传值到ActionForm,从ActionForm中取值设置vo/po的属性,链接数据库,服务器内部以及数据库本身这几个过程。
    页面显示用gbk/gb2312都没关系,但要统一(这里假设用gbk)
    表单传值到ActionForm时把request的字符编码改成gbk(request.setCharacterEncoding("gbk"))
    从ActionForm中取值设置vo/po的属性时用gbk来解码ActionForm中的值(xxx.setXxx(new String(form.getXxx().getBytes(), "gbk"));)
    链接数据库时如果单单用Struts的,链接数据库的代码直接在DAO里面写的话那就用你的那个就行了,如果是在Hibernate里面配的话就要象竹老师那样做
    至于服务器出乱码,就得用过滤器了,我用的是Tomcat服务器,它自己本身就有一个过滤器来,直接拿出来用就行了,注意记得要在web.xml配置一下过滤器
    至于数据库本身,除了你已经做了的,你再把下面这几个设置一下就行了(这样稳点。。)
    set character_set_client = gbk;
    set character_set_connection = gbk;
    set character_set_database = gbk;
    set character_set_results = gbk;
    set character_set_server  = gbk;
    做完上面的步骤,应该就没问题的了!