我的web程序是这样设置的
jdbc:mysql://localhost:3306/lovedb?useUnicode=true&characterEncoding=utf8也就是说我是配置成utf8的...
但是在数据库中:
set names 'uft-8';
select * from user_tb ;--------------------出来的结果是乱码.set names 'gb2312';
select * from user_tb ;--------------------出来的结果是正确的.我明明是用utf-8写进去的..怎么会变成gb2312呢,真是怪事啊

解决方案 »

  1.   

    这个问题很简单。 当你 set names 'gb2312'; 的时候等于告诉了MYSQL服务器,你只懂 gb2312, MYSQL会帮你把数据从表中取出,并当表中声明的语言和你的不一样的时候帮你翻译成 gb2312.
      

  2.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  3.   


    这个的原因是。WINDOWS 命令行(也就是俗称的DOS)无法正确支持MYSQL命令行中的UTF8
      

  4.   

    嗯,我的数据库也是utf-8的,php的时候set names 'uft8';命令行的时候set names 'gb2312';