Php 替换字符串中的utf8文本

Php 替换字符串中的utf8文本,php,utf-8,Php,Utf 8,我从外部服务接收到一个字符串,其中包含一些utf8文本 $a = $param1; echo $a; \xe7\xe3 如何将$a(一个包含8个字符的utf8字符串)转换为“çã” 我知道我可以使用strtr和替换图,但我认为也许有更好的方法 简化示例,我有一个简单的网页: <?php echo '<html><body>'.$_GET['aa'].'</body></html>'; 使用评论中的提示,我得到了一个稍微不同的算法: fu

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

$a = $param1;
echo $a;

\xe7\xe3
如何将$a(一个包含8个字符的utf8字符串)转换为“çã”

我知道我可以使用strtr和替换图,但我认为也许有更好的方法

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

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

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

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
   );
}

什么是“çã”?你能不能用str_替换(array1,array2,$a)?@zairwolf:我可以用str_替换,但‘çã’只是一个例子。有几十个字符需要替换。@mins:utf8\u decode(或encode)只返回相同的字符串。我的整个应用程序都在使用utf-8。我没有领会你的意思,对不起,我希望这一个可以:@mins:这成功了。非常感谢。