图一
图二如图一、搜索进户口 程序可以找到记录,编码是CP936,而当点击第二页的时候,如图二,编码变成了EUC-CN,结果就是什么记录都找不到了。而我换个关键词 如“拼-B”,初次搜索第一页关键词的编码又是UTF-8了,点第二页关键词编码变成EUC-CN,导致结果什么也没有,如图三,图四。
图三图四而我再换一个关键词如“门扇PL-N02”,同样有-也就是小减号,初次搜索编码是CP936,点第二页的时候编码变成EUC-CN了,导致翻页没结果,如图五图六。
图五图六
我就晕了,这到底怎么回事啊,大神求救,怎么才能解决这个问题呢?搜索不到东西啊。

解决方案 »

  1.   

    CP936
    EUC-CN
    这两个编码是哪儿来的,怎么获取的?
      

  2.   


    用mb_detect_encoding函数检测的得到的啊?
      

  3.   

    你乱码的截图表示你将 gbk 汉字当做 utf-8 显示了
    string(9) "进户口" 可以佐证这一点utf-8 的页面只会提交 utf-8 的数据,无需再去识别
      

  4.   

    我也是被这CP936、EUC-CN编码搞混了
    我只能说,要解决编码问题,就要统一编码,数据库设置为utf-8,php页面编码设置为utf-8,header设置浏览器编码为utf-8
      

  5.   

    mb_detect_encoding 在 php4 中表现还可以,到了 php5 就越变越差了
    由此可知日本鬼子是极坏极坏的
      

  6.   

    数据库,php文件,meta 的charset都用utf-8试试。
      

  7.   


    版主大大 都是utf8的,,,,,,我是thinkphp内核,,,
    唯一感觉不同的就是 搜索的时候第一次搜索和点第二页的时候 url形式变了一下。。
      

  8.   

    你在 #2 补充说 字符集是用mb_detect_encoding函数检测的得到的
    你的页面、数据库都是 utf-8 的,干嘛还要检测字符集?难道还不都是 utf-8 的吗?
      

  9.   

    如果数据库,php文件,meta 的charset都是utf-8,为什么你还要检查字符集呢?