PHP中UTF-8字符串的字节数组?

PHP中UTF-8字符串的字节数组?,php,utf-8,Php,Utf 8,如何将字节数组转换为UTF-8字符串?我需要这个,因为我是从二进制格式提取的。字符串只不过是一个字节数组。所以UTF-8字符串与字节数组非常相似,除了你知道字节数组代表什么 因此,字节的输入数组还需要另外一个信息:字符集(字符编码)。如果知道输入字符集,可以将字节数组转换为表示UTF-8字符串的另一个字节数组 这样做的PHP方法称为 PHP本身不知道字符集(字符编码)。所以字符串实际上只是一个字节数组。应用程序必须知道如何处理这个问题 因此,如果您有一个字节数组,并希望将其转换为PHP字符串,以

如何将字节数组转换为UTF-8字符串?我需要这个,因为我是从二进制格式提取的。

字符串只不过是一个字节数组。所以UTF-8字符串与字节数组非常相似,除了你知道字节数组代表什么

因此,字节的输入数组还需要另外一个信息:字符集(字符编码)。如果知道输入字符集,可以将字节数组转换为表示UTF-8字符串的另一个字节数组

这样做的PHP方法称为

PHP本身不知道字符集(字符编码)。所以字符串实际上只是一个字节数组。应用程序必须知道如何处理这个问题

因此,如果您有一个字节数组,并希望将其转换为PHP字符串,以便使用
mb\u convert\u encoding()
转换字符集,请尝试以下操作:

$input = array(0x53, 0x68, 0x69);
$output = '';
for ($i = 0, $j = count($input); $i < $j; ++$i) {
    $output .= chr($input[$i]);
}
$output_utf8 = mb_convert_encoding($output, 'utf-8', 'enter input encoding here');
$input=array(0x53、0x68、0x69);
$output='';
对于($i=0,$j=count($input);$i<$j;++$i){
$output.=chr($input[$i]);
}
$output_utf8=mb_convert_encoding($output,'utf-8','entinput encoding here');
(与上面的单个示例不同,请查看中的更多示例。)


$output\u utf8
然后将是一个PHP字符串,由转换为UTF-8的字节组成的输入数组。

可能是重复的,我尝试了utf8\u解码(pack(“C*”,array\u slice($data,$i,$j)),但这对我毫无帮助;)我在这个php方面有点新手。不重复。utf-8与ascii有很大不同。我想解码的方法也是一样。是的,可能会有所不同。但是您需要展示一个实际的例子,说明编码是如何被简单的字节混合为字符序列化的。如果您有UTF-8BE(实际上并不合法,但您没有更好的描述),那么它将需要一个相当麻烦的解决方法。(别费心问了,太宽泛了,所以很少有人回答像你这样肤浅的一行式问题。)