第一个问题看置顶的mysql乱码专用帖。
第二个问题给php加载mbstring扩展库。

解决方案 »

  1.   

    乱码问题你自己都说出了原因,那么改就是了第二个问题是你的开发环境没有mb_string多字节处理函数库。加就是了。
      

  2.   

    mb_string多字节处理函数库怎么加啊?是在pecl-5.1.4-Win32的扩展包里吗?
      

  3.   

    在php.ini里。找到这句
    ;extension=php_mbstring.dll
    把前面的;号去掉,重启apache。
      

  4.   

    to Gdj(陈水.智商只有129.非卖品) :
    按照你的方法第二个问题解决了 ,谢谢!第一个问题我还是不会改,再次请教!小弟是写JAVA和.NET的,由于公司突然来了个PHP的项目,我就临时学习了下PHP,总共接触还不到一个星期的时间,所以有些问题对大家来说很简单可能问的比较幼稚,希望大家不要见笑哦~~,再次感谢!
      

  5.   

    SET NAMES GB2312 在查询数据库的时候加上这句看看!
      

  6.   

    to niohe()
    我试了,不行啊!
      

  7.   

    gb2312应该是gbk的一个子集。我觉得他们应该通用的才对?
      

  8.   

    to Gdj(陈水.智商只有129.非卖品)
    表里的中文数据能正常显示的
      

  9.   

    那估计是你们apache的设置了
    在httpd.conf里加这句
    AddDefaultCharset gb2312
      

  10.   

    在查询数据库前加上这句试试
    SET charset GBK
      

  11.   

    to jetxt(擦肩而过):我在$result = $DB->query($sql);前添加$DB->query("set charset gbk");确实可以解决了乱码问题,但是有些页面还是不行,不知道为什么!
      

  12.   

    set names gbk
    set charset gbk这两句都是可以的。有些页面不行大概是因为你前台页台使用的是gb2312吧。他只是gbk的一个子集。也就是说有部分gbk里的字符gb2312并不包含。所以使用到这部分字符的就出乱码了。
      

  13.   

    to Gdj(陈水.智商只有129.非卖品):非常感谢你的关注,也非常感谢你的回答!我的前台使用的是GB2312,如果有部分gbk里的字符gb2312并不包含,怎么才能让它在IE里正常显示呢?
      

  14.   

    没别的办法……只能把前台改成gbk
      

  15.   

    感谢各位大侠的帮助,尤其是“Gdj(陈水.智商只有129.非卖品)”!乱码问题已经全部解决!还有个小问题,顺便问问大家:
    set charset gbk 和 set names gbk 有什么区别?为什么我取出记录的时候用set charset gbk中文在页面上能正常显示,而我保存中文到数据库中的时候却是乱码,但我改成set names gbk却又是正确的?当然这个问题不管回不回答,马上揭帖!
      

  16.   

    SET NAMES 设置了 3 个会话变量 character_set_client , character_set_connection 和 character_set_results 为给定的字符集。默认的映射关系可以使用值 DEFAULT 来重新设定。