PHP:将字符串转换回正常

时间:2013-06-23 18:17:51

标签: php regex string hex

我在MediaWiki Source中找到了一个函数,它将带有变音符号的字符串转换为HEX格式。

现在我想将格式化的字符串转换回带有变音符号的字符串。

功能:

    $Umlaut = "löschen";

    $out = preg_replace_callback("/([\\xc0-\\xff][\\x80-\\xbf]*)/",'stripForSearchCallback', $Umlaut);

    function stripForSearchCallback( $matches ) {
         return 'u8' .  bin2hex( $matches[1] );
    }

    echo $out;

输出:“lu8c3b6schen”

现在我想将“lu8c3b6schen”转换回“löschen”。

我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

尝试类似的东西:

$string = "lu8c3b6schen";

$out = preg_replace_callback("/u8([a-f0-9]{4})/",'unstrip', $string);

function unstrip( $matches ) {
    $decoded = hex2bin( $matches[1] );
    return $decoded ? $decoded : $matches[1];
}

echo $out;