特殊字符替换不起作用

时间:2014-12-20 07:44:29

标签: php special-characters str-replace

我写过这个方法来替换特殊字符:

function replace_sonder($string)
    {
        $string2 = str_replace("ä", "ä", $string);
        $string2 = str_replace("%E4", "ä", $string2);
        $string2 = str_replace("ö", "ö", $string2);
        $string2 = str_replace("%F6", "ö", $string2);
        $string2 = str_replace("ü", "ü", $string2);
        $string2 = str_replace("%FC", "ü", $string2);
        $string2 = str_replace("Ä", "Ä", $string2);
        $string2 = str_replace("%C4", "Ä", $string2);
        $string2 = str_replace("Ö", "Ö", $string2);
        $string2 = str_replace("%D6", "Ö", $string2);
        $string2 = str_replace("Ü", "Ü", $string2);
        $string2 = str_replace("%DC", "Ü", $string2);
        $string2 = str_replace("ß", "ß", $string2);
        $string2 = str_replace("%DF", "ß", $string2);
        return $string2;
    }

它总是返回我传入的相同字符串。我在哪里遗漏了某些东西,或者有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:1)

$string = preg_replace("/ä/", "ä", $string);
...

但更好的方法是:

$string = htmlentities($string, ENT_QUOTES);

答案 1 :(得分:0)

检查您要比较的输出不是HTML页面,因为它会再次转换字符。