数据库设置为utf8,php页面文件也设置为utf-8,进行查询的时候出现乱码,比如字母a会匹配中文,怎么解决呢?

解决方案 »

  1.   

    set names 呢?是不是你的。html页面编码问题啊
      

  2.   

    html编码也是utf-8的<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      

  3.   

    很奇怪的是$keywords = iconv("utf-8", "gb2312", $keywords);这样转码之后,中文可以匹配,但是字母可能会匹配到中文。
      

  4.   

    试下加上mysql_select_db(".........")//这一句后面执行一次下面这句
    mysql_query("SET NAMES 'utf8'");
      

  5.   

    页面调用了JavaScript或ajax等处理数据吗,可能问题就出这。。
      

  6.   

    页面调用了JavaScript或ajax它经常出,或者说只要不是utf-8的话肯定出乱码,传过去后用iconv()转下就好了
      

  7.   

    show create database faq;
    得到CREATE DATABASE `faq` /*!40100 DEFAULT CHARACTER SET utf8 */ 
    所以数据库的编码是utf8的,但是查询数据库里面的数据是乱码,而页面又可以显示成中文,怎么会这样呢?
      

  8.   

    只要页面+php+mysql 都是utf8的,应该没问题。
    你的那a是不是全角的啊? 最好把SQL打印出来,然后在后台运行一下那个SQL 看看查询出来什么结果。
      

  9.   

    默认情况下,MySQL在执行查找时不区分字母的大小写。当你在查找时使用like '%a%'时, 默认将返回以a或者A开头的所有列值,若要在查找时区分大小写,则需要使用collate运算符来实现.试试 这样的
    col_name LIKE 'a%' COLLATE latin1_bin
      

  10.   

    请将你的模糊查询传值之前
    encodeURIComponent(你要传的值)