我用的是.net+mysql开发,但过程中遇到一个问题:程序插入的数据都是“???”这样的乱码,.net默认的编码是gb2312,数据库里修改了
[client]
default-character-set=gb2312
port=3306
[mysqld]
default-character-set=gb2312
重启了几次都不行,请问这是那里出了问题?有什么好的办法解决这个问题吗?

解决方案 »

  1.   

    连接数据库后 先执行语句 SET NAMES GB2312
      

  2.   

    首先 进入你先前创建的数据库中查看 Db的编码方式看是否是latin1 如果是就删除原来的数据库
    重新创建一个新的数据库 此时Db的编码方式就是gb2312 
    问题的关键是 只修改了server client的编码方式而没有修改db的编码
    希望对你有所帮助
      

  3.   

    我觉得可能是.net开发中没有把中文的转码处理好,你应该看看的网页中传到数据库中的字段是否是数据库支持的中文格式
      

  4.   

    CREATE DATABASE `DBname` DEFAULT CHARACTER SET binary;这样子创建数据库之后,建表的时候
    CREATE TABLE `aa` (
      `q` varbinary(1) NOT NULL,
      `w` varbinary(1) NOT NULL
    )DEFAULT CHARSET=binary;只要你取出数据的时候和放入数据的时候使用的是同一种编码即可