字符串只不过是一个字节数组.因此,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');
Run Code Online (Sandbox Code Playgroud)
(而不是上面的单个示例,请参阅/sf/answers/383114021/上的更多示例.)
$output_utf8
然后将是转换为UTF-8的输入字节数组的PHP字符串.
归档时间: |
|
查看次数: |
7910 次 |
最近记录: |