RT虽然我知道这是很老的问题,但在从网上查的始终没有作用。只能请教各位了。我现在的直接登mysql和用navicat登都能正常读写中文数据。所做的程序读取已经存在的中文数据也没有问题,可是从程序中将中文数据存入mysql中,就会显示成????应该还是字符集的问题,所以我想知道怎么去统一java与mysql的字符集。

解决方案 »

  1.   

    mysql字符集修改以后,对已经插入的表不起作用的,它们还是修改之前的字符集。
      

  2.   

    1.
    修改mysql配置文件my.ini中的字符集如   
      default-character-set = gbk
      character_set_server =  gbk
    2.
    重启mysql服务器
    (在dos命令行中敲net stop mysql5(关闭))
    net start mysql5 重启
    3.
    set names "gbk";楼主试下
      

  3.   

    MySQL Server Instance Config Wizard在这个程序中去配置字符编码,配置成gbk然后你的java如果是别的编码那么在连接或是插入的时候在转换下,如果把masql配置成utf8也会乱码,在mysql中输入的时候也会乱码。我在配置文件中也改过把默认的编码改成gbk但是不起左右在MySQL Server Instance Config Wizard中就可以了。
      

  4.   

    点“开始”->所有程序->Mysql->Mysql server instance config wizard  然后一步一步重新配置你的mysql服务当配置到选择编码的时候  第三条 Manual Selected Default Character set/collation 然后在下拉列表框里选择你应该选的编码   配置完成 这样你的问题就解决了,我遇到过一样的问题
      

  5.   

    我都试过了,还是不行。
    现在用控制台登陆也是???
    用navicat查看是正常的
    用程序存入的还是????????
      

  6.   


    实在不行就把mysql卸载了 重新安装 注意安装过程选择正确的字符编码
      

  7.   

    不是,我的问题是java编写的程序向mysql写入中文数据时出现的是一堆????
    而读取中文数据时就正常
    mysql用控制台现在读取 ,写入数据都是正常的java读取的时候是要对数据进行转换吗?
      

  8.   

    抱歉那,可能是我没说明白,我的问题是java程序与mysql之间存在乱码
    程序读取中文数据时正常,但是插入的中文数据就是问号
      

  9.   

    问题解决了,我更改了my.ini中的default-character-set = gb2312
    然后 String url = "jdbc:mysql://localhost:3306/LibraryManagementSystem?useUnicode=true&characterEncoding=GB2312";
    就可以了,谢谢各位了!
    :-)
      

  10.   

    1. 
    修改mysql配置文件my.ini中的字符集如  
      default-character-set = gbk 
      character_set_server =  gbk 
    2. 
    重启mysql服务器 
    (在dos命令行中敲net stop mysql5(关闭)) 
    net start mysql5 重启 
    3. 
    set names "gbk";