用string替换utf8文字

时间:2015-05-20 17:56:12

标签: php utf-8

我从外部服务收到一个字符串,其中包含一些utf8文字。

$a = $param1;
echo $a;

\xe7\xe3

如何将$ a(一个包含8个字符的utf8字符串)转换为'çã'?

我知道我可以使用strtr替换地图,但我想也许有更好的方法。

简化示例,我有一个简单的网页:

<?php
echo '<html><body>'.$_GET['aa'].'</body></html>';

我用?aa=\xe7\xe3参数

来称呼它

浏览器显示\xe7\xe3,但我想显示çã,如果我使用双引号"\xe7\xe3"声明的话。

1 个答案:

答案 0 :(得分:0)

使用评论中的提示,我得到了一个稍微不同的算法:

function decode_code($code){
    return preg_replace_callback(
        "@\\\(x)?([0-9a-f]{2,3})@",
        function($m){
            return utf8_encode(chr($m[1]?hexdec($m[2]):octdec($m[2])));
        },
        $code
   );
}