如题  但是如果是gb2312就可以正常显示中文

解决方案 »

  1.   

    你在建立数据库的时候是否更改了原先的校对没有?
    如果有的话,你的mysql_query()的内容要和你的校对的一致。==================
    建议一般不要更改MySQL的校对和整理!
    都用utf-8,在网页文件中的charset也用utf-8,否则中文数据插入了也会变成乱码!
      

  2.   

    mysql我用的是utf-8,php页面我也用utf-8,但还是出错,用了gb2312后就没问题。
      

  3.   

    应该是要保持编码一致的
    网页中
    <meta http-equiv="content-type" content="html/text; charset=utf-8" />
    header
    @header("content-Type: text/html; charset=utf-8");
      

  4.   

    mysql_query(set names utf8)
      

  5.   

    用mysql4.0.27以前的版本.没有数据校对的话,就不会出现UTF-8的乱码问题,这是最直接的解决方法,其他方法的话.很麻烦,如果你网页文件本身是UTF-8格式的.那么,够你折腾的了.详情可参考http://topic.csdn.net/u/20090104/22/69c003fc-7e74-459a-a9f0-f22e43427e09.html这个.
      

  6.   


    mysql_query("set names utf8");而不是utf-8。楼主的意思是不是指定为GB2312就没事呢??如果是那么你的数据库不是UTF8而是GB2312的。网页用header强制指定编码,文件自己的 编码也要是utf-8的。
      

  7.   


    今天也是一样,发现确实是写错了。是utf8 而不是utf-8
      

  8.   

    如果用gb2312是中文,那么用utf8就应该是乱码,mysql语句对了也是因为编码方式不一样
      

  9.   

    不知道怎么的windows下应该是 set names utf8,到linux下就需要写成set names utf-8
      

  10.   

    mysql_query(set names utf8)
    -------------
    我亲身体会了