列类型为varchar,通过PHP插入中文时出现乱码。连接数据库时已经执行了SET   NAMES   GBK,请问各位大侠,问题出在了什么地方?多谢

解决方案 »

  1.   

    http://topic.csdn.net/t/20051213/11/4456072.html网页编码是gb2312(如果网页编码是utf-8,php部分可以改成相应的)   
      【1】命令行,就是Mysql.exe   
      修改my.ini,   
      [mysql]   
      default-character-set=gb2312   
      (转贴请注明作者)   
      【2】php->mysql   
      1   可以修改my.ini的情况下,在[mysqld]添加或修改   
      init-connect='SET   NAMES   gb2312'   
      2   不能修改my.ini   
      可以在php   connect   mysql后执行mysql_query('SET   NAMES   gb2312;');   
        
      utf-8编码的文件要比gb2312大,如果网页只有简体中文,只面对国内,没必要转成utf-8   
      如果网站是多语言,可以考虑utf-8   
        
      mysql   4.1版本之后引入多字符编码,我的理解是不论数据库里采用那种编码,只要存入和取出的时候设置的编码相同就不会出现乱码。mysql增加了转码,就是你存入utf-8编码,取出的时候只要告诉mysql你要得到那种编码它就返回正确的结果   
      如果default-character-set=gb2312   那么就不能存utf8编码的字符,但它的好处是省空间,对数据量大的有用   
      默认编码是latin1编码,跟gb2312类似,无法插入utf-8编码字符,会提示Data   too   long   for   column   'xx'   at   row   
      所以网页要采用utf-8编码,数据库也要采用,utf-8编码的网页提交的数据也是utf-8的。   
      采用latin1或者gb2312,gbk的,只要告诉mysql它你想要的编码就能得到正果   
      语句就是   
      SET   NAMES   xxx;   
      SET   CHARACTER_SET   xxx;   
      
      

  2.   

    回楼上我的 my.ini 中的default-character-set已经设为gbk,并且在connect  mysql后执行了mysql_query('SET  NAMES  gbk;')问题如故……  
      

  3.   

    加上mysql_query('SET NAMES utf8');
      

  4.   


    表的"整理"属性是"gbk_chinese_ci"
      

  5.   

    问题已经解决 是php文件储存时的编码错误造成的问题 感谢各位 分给你们了