如何用PHP解码“\ 320 \ 240 \ 321 \ 203”

时间:2012-06-06 08:49:27

标签: php encoding

我有这个字符串: \ 320 \ 260 \ 320 \ 275 \ 320 \ 264 \ 320 \ 260

我知道它是西里尔文(来自数据库的值),但我需要将其转换为正确的UTF-8字符串。是否有一个PHP函数来处理这个或我必须自己编写?

1 个答案:

答案 0 :(得分:4)

这是一个8字节的字符串,由字符\ 320,\ 260,\ 320等组成?如果是这样,它已经是UTF-8而你不需要做任何事情:

echo "\320\260\320\275\320\264\320\260";
// Output: анда

如果它是一个32字节的字符串而不是由字符\,3,2,0等组成,则需要进行一些处理:

// helper function to convert octal numbers to characters
function oct2chr($x) {return chr(octdec($x));}

$input = "\\320\\260\\320\\275\\320\\264\\320\\260";
$output = preg_replace('/\\\\[0-7]{3}/e', 'oct2chr("$0")', $input);
// alternative: implode("", array_map("oct2chr", explode("\\", $input)));
echo $output;
// Output: анда