1

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

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

4

1 回答 1

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: анда
于 2012-06-07T15:57:57.797 回答