如何将字节数组转换为UTF-8字符串?我需要这个,因为我正在从二进制格式中提取。
因此,您的输入字节数组还需要另外一个信息:字符集(字符编码)。如果知道输入字符集,可以将字节数组转换为另一个表示UTF-8字符串的字节数组。
用于执行此操作的PHP方法称为mb_convert_encoding()
。
PHP本身并不知道字符集(字符编码)。因此,字符串实际上只不过是一个字节数组。应用程序必须知道如何处理此问题。
因此,如果您有一个字节数组,并希望将其转换为PHP字符串,以便使用mb_convert_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');
(与上面的单个示例不同,请查看https://stackoverflow.com/a/5473057/530502.)
$output_utf8
将是转换为UTF-8的输入字节数组的PHP字符串。