源代码如下$keyword = $_GET ['q'];   //获取的q值是 "请选择"
$choose="请选择";
if($keyword==$choose)
echo "ok";echo var_dump($keyword).var_dump($choose);   //echo 的结果 $keyword=>string(9) "请选择"    $choose=>string(6) "?ѡ?" (乱码)
请问如何让$keyword 和 $choose相等

解决方案 »

  1.   

    你的源代码保存UTF-8格式
      

  2.   

    编码统一即可通常网页源码里<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    字符的,你php文件里写了中文,php文件保存为utf-8格式如果是 GBK GB2312的,文件保存ANSI即可。以windows记事本为例,另存为,可以选择编码。。其他编辑器也是类似的如果有得选择,utf-8,要选无bom格式
      

  3.   

    除将文件保存为utf-8编码外,
    在接收页面头部加上: header('Content-type:text/html; charset=utf-8');
      

  4.   

    补充一下最佳做法:
    在链接页使用 urlencode 加密, 在接收页使用 urldecode解密,这样在一些特殊符号时不会错误。
      

  5.   

    要注意post页的编码,和这个PHP页的编码是否一致,不一致也不会相等不仅仅是meta的编码,文件的存储编码也要一致!
      

  6.   

    其实完全可以换成  标记来做,,,,如: 
    $keyword = $_GET ['q'];   //换成一个字符串如:qingxuanze
    $choose="qingxuanze";这就成了嘛
    一样的效果
      

  7.   

    编码问题,meta 还有文件的编码 编写时 一致 就行了