如何将字节数组转换为 UTF-8 字符串?我需要这个,因为我是从二进制格式中提取的。
问问题
10292 次
1 回答
7
字符串只不过是一个字节数组。因此,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
然后将一个 PHP 字符串的输入字节数组转换为 UTF-8。
于 2012-09-02T19:08:49.520 回答