就是用 connector/j jdbc 连接mysql的时候查询和插入中文数据的问题
mysql用的是5.0版在mysql中建立中文表,在mysql中查询显示正常,在java中用Class.forName("com.mysql.jdbc.Driver");。。"jdbc:mysql://localhost/www?useUnicode=true&characterEncoding=utf8&user=root&password=root";红色这段不管改成gbk还是gb2312 或者不加,rs.getString(1);中中文都是乱码,
我用String str1 =new String( rs.getString(1).getBytes("ISO-8859-1"));才能正常转换过来,现在可以说读数据库没问题,但是插入中文后 在mysql中显示从java程序插入的都是??在mysql中插入的还是很正常的。但查询和删除都很正常,在java中也能正常显示,就是在mysql控制台中是??我想问怎么解决找个问题。在网上也找到很多方法,有的说 改my.ini中default-character-set=latin1为gbk gb2312 什么的我改了(2行都改了),然后进入到mysql中 中文全是乱码了 连以前可以显示的都成乱码了,然后再插入新的中文,会提示说 “数据太长无法插入”。
现在就是 java程序使用没什么问题 就是从java插入mysql的中文在mysql中显示的是???

解决方案 »

  1.   

    我建议是把my.ini中的default-character-set=latin1改为UTF-8,并且将页面的Encoding也改为UTF-8,在接受参数的时候仍然要转换,最好配置encodFilter过滤器,这样应该可以解决问题,另外就是所有已经建好的数据表的字符集也要改。你可以试试!!
      

  2.   

    先停掉 MySQL 服务, 
    1)修改 MySql安装目录下面的my.ini(MySQL Server Instance Configuration 文件)。 设置 
            default-character-set=gbk(注意,有2处) 2)修改data目录中相应数据库目录下的db.opt配置文件 
            将    default-character-set=latin1 
    default-collation=latin1_swedish_ci 改为  default-character-set=gbk 
    default-collation=gbk_chinese_ci 
        重启 MySQL 服务,重新建库,或者在你原来用的库中重新建表(但原来出错的表是绝对不能用了)。然后你在hibernate.cfg.xml的<property name="hibernate.connection.url">中的url地址改成下面这个样子
    jdbc:mysql://127.0.0.1/oa?useUnicode=true&amp;characterEncoding=gbk
      

  3.   

    2L的不行我试了
    3L的我没改data里的参数 一会试试
    有别的想法也可以说 
    如果解决了 明天结贴