我有这个字符串: \ 320 \ 260 \ 320 \ 275 \ 320 \ 264 \ 320 \ 260
我知道它是西里尔文(来自数据库的值),但我需要将其转换为正确的UTF-8字符串。是否有一个PHP函数来处理这个或我必须自己编写?
答案 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: анда