如何在php中(使用非ascii字符)在htmlentities和普通字符串之间进行Str比较

如何在php中(使用非ascii字符)在htmlentities和普通字符串之间进行Str比较,php,Php,当我使用此代码时: <? $a = htmlentities(urldecode("ööö")); $b = "ööö"; if ($a === $b){ echo "equal."; } ?> 当我运行上述代码时,它无法编写任何东西。但当我使用下面的代码时: <? $a = "ööö"; $b = "ööö"; if ($a === $b){ echo "equal."; } ?> 它写的是“平等”。所以,当字符串与htmlentitie

当我使用此代码时:

<?
$a = htmlentities(urldecode("ööö"));
$b = "ööö";

if ($a === $b){
    echo "equal.";
}
?>

当我运行上述代码时,它无法编写任何东西。但当我使用下面的代码时:

<?
$a = "ööö";
$b = "ööö";

if ($a === $b){
    echo "equal.";
}
?>

它写的是“平等”。所以,当字符串与htmlentities函数一起使用时,我无法比较它们。我怎样才能解决这个问题? 我认为问题在于htmlentities()函数。当使用它时,PHP无法真正比较字符串。。。
谢谢。

尝试使用
htmlspecialchars

<?php
    $a = htmlspecialchars(urldecode("ööö"));
    $b = "ööö";

    if ($a === $b){
            echo "equal.";
        } else {
            echo "not equal.";
    }
?>


我在fiddle中检查了这两个代码,第一个代码不会回显,但第二个代码回显
相等。
所以问题到底是什么,您提供的信息有限,很难理解。@shehary当我使用htmlentities函数和$a变量时,===运算符不能理解是否相等。你能理解吗?如果输出没有显示
equal
它显然意味着它的
notequal
你可以这样检查它
if($a===$b){echo“equal.”;}否则{echo“notequal.”;}
@shehary是的,我知道。但我想说的是:在使用$\u GET或$\u POST方法时,为了安全起见,我必须使用htmlentities函数。但是,当我将htmlentities函数与$a变量一起使用时,php脚本无法理解字符串是否相等。我想将$a变量转换为===运算符可以理解字符串是否相等