我从外部服务收到一个字符串,其中包含一些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"
声明的话。
答案 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
);
}