你数据库中存为gb2312的阿,如果查看要用utf-8那么你用iconv("GB2312","UTF-8",$str)转换就可以了阿。

解决方案 »

  1.   

    michaelle0618,可能你还没有明白。 这个只和database相关。 我的资料本身就是utf-8的, 不需要转换的。这个是数据问题, 和php无关。 ICONV是PHP的Convert。 和我的问题没有关系。
      

  2.   

    我post中文到数据库中是乱码
    从哪里看是乱码??你post的是UTF8的数据,保存进最好也使用UTF8来保存
    在连接数据库之后设置一下客户端的编码mysql_query("SET NAMES utf8");
    你数据库的编码也要是UTF8的,
    显示的时候也要指定<meta http-equiv="content-type" content="text/html;charset=utf-8"/>也就是说整个过程都保持一致就没问题了.
      

  3.   

    是一样的。 page是utf-8, post的也是utf-8, 我的页面是utf-8的, query出来的数据是乱码,非正常字串。 中文的字。
      

  4.   

    这样的SQL也不行:
    SELECT id FROM ice_products WHERE `name` LIKE 'sdf%' OR `intro` LIKE 'sdf%' ORDER BY level,id DESC ERROR:
    #1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 
      

  5.   

    从上面可以看出,你的表不是UTF编码
    而使用的查询语句是UTF8的
    也就是说name列的编码是拉丁
    而sdf%的编码是utf8
    有二种选择
    1.将表编码改成utf8的
    2.使用带Collation的SQL语句
    SELECT id FROM ice_products WHERE _utf8`name` LIKE 'sdf%' OR _utf8`intro` LIKE 'sdf%' ORDER BY level,id DESC
      

  6.   

    呵呵, 这个问题不是那么简单的了. 不过我自己搞定了. 好复杂的.不过还是要谢谢 你们.特别是
     ice_berg16(寻梦的稻草人)Thanks.