PHP 比较两个中文字符总是不相等!!求方法

时间:2022-08-12 14:00:54
源代码如下

$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相等

17 个解决方案

#1


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

#2


引用 1 楼 cunningboy 的回复:
你的源代码保存UTF-8格式

如何保存为UTF-8格式?

#3


文件->另存,选择编码

#4


编码统一即可

通常网页源码里<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
字符的,你php文件里写了中文,php文件保存为utf-8格式

如果是 GBK GB2312的,文件保存ANSI即可。



以windows记事本为例,另存为,可以选择编码。。其他编辑器也是类似的

如果有得选择,utf-8,要选无bom格式

#5


引用 4 楼 amani11 的回复:
编码统一即可

通常网页源码里<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
字符的,你php文件里写了中文,php文件保存为utf-8格式

如果是 GBK GB2312的,文件保存ANSI即可。



以windows记事本为例,另存为,可以选择编码。。其他编辑器也是类似的

如……


解释得相当详细,比我勤快,呵呵!

#6


编码统一,楼上几位解释的很详细啦

#7


将你的页面编码和文件编码保持一致

传值的时候最好用英文,中文有很多麻烦,有可能被编码了

#8


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

#9


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

#10


要注意post页的编码,和这个PHP页的编码是否一致,不一致也不会相等

不仅仅是meta的编码,文件的存储编码也要一致!

#11


楼上的解决方法很好

#12


其实完全可以换成  标记来做,,,,

如: 
$keyword = $_GET ['q'];   //换成一个字符串如:qingxuanze
$choose="qingxuanze";

这就成了嘛
一样的效果

#13


换成标记来做,更简单写啊。

#14


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

#15


引用 4 楼 amani11 的回复:
编码统一即可

通常网页源码里<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
字符的,你php文件里写了中文,php文件保存为utf-8格式

如果是 GBK GB2312的,文件保存ANSI即可。



以windows记事本为例,另存为,可以选择编码。。其他编辑器也是类似的

如……
---学习了,就是如此,也可用EditPlus打开,另存,选择utf8

#16


每天回帖即可获得10分可用分!

#17


strcmp()比较下就可以了

#1


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

#2


引用 1 楼 cunningboy 的回复:
你的源代码保存UTF-8格式

如何保存为UTF-8格式?

#3


文件->另存,选择编码

#4


编码统一即可

通常网页源码里<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
字符的,你php文件里写了中文,php文件保存为utf-8格式

如果是 GBK GB2312的,文件保存ANSI即可。



以windows记事本为例,另存为,可以选择编码。。其他编辑器也是类似的

如果有得选择,utf-8,要选无bom格式

#5


引用 4 楼 amani11 的回复:
编码统一即可

通常网页源码里<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
字符的,你php文件里写了中文,php文件保存为utf-8格式

如果是 GBK GB2312的,文件保存ANSI即可。



以windows记事本为例,另存为,可以选择编码。。其他编辑器也是类似的

如……


解释得相当详细,比我勤快,呵呵!

#6


编码统一,楼上几位解释的很详细啦

#7


将你的页面编码和文件编码保持一致

传值的时候最好用英文,中文有很多麻烦,有可能被编码了

#8


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

#9


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

#10


要注意post页的编码,和这个PHP页的编码是否一致,不一致也不会相等

不仅仅是meta的编码,文件的存储编码也要一致!

#11


楼上的解决方法很好

#12


其实完全可以换成  标记来做,,,,

如: 
$keyword = $_GET ['q'];   //换成一个字符串如:qingxuanze
$choose="qingxuanze";

这就成了嘛
一样的效果

#13


换成标记来做,更简单写啊。

#14


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

#15


引用 4 楼 amani11 的回复:
编码统一即可

通常网页源码里<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
字符的,你php文件里写了中文,php文件保存为utf-8格式

如果是 GBK GB2312的,文件保存ANSI即可。



以windows记事本为例,另存为,可以选择编码。。其他编辑器也是类似的

如……
---学习了,就是如此,也可用EditPlus打开,另存,选择utf8

#16


每天回帖即可获得10分可用分!

#17


strcmp()比较下就可以了