时间:2021-07-01 10:21:17 帮助过:4人阅读
//3字节 1110xxxx 10xxxxxx 10xxxxxx
$unicode = '\u611f'; //中文感Unicode
function unicode_utf8($unicode)
{
$decval = intval(hexdec($unicode));
$left = dechex( 0xe0 | ($decval >> 12));
$mid = dechex( 0x80 | (($decval >> 6) & 0x3f));
$right= dechex( 0x80 | ($decval & 0x3f));
return $left.$mid.$right;
}
echo $utf8 = unicode_utf8($unicode);
echo "\n";
?>
输出:e6849f
问题是如何把UTF-8码 e6849f 对应的汉字'感'显示出来??
这是我写的Unicode码生成UTF-8对应的码值
//3字节 1110xxxx 10xxxxxx 10xxxxxx
$unicode = '\u611f'; //中文感Unicode
function unicode_utf8($unicode)
{
$decval = intval(hexdec($unicode));
$left = dechex( 0xe0 | ($decval >> 12));
$mid = dechex( 0x80 | (($decval >> 6) & 0x3f));
$right= dechex( 0x80 | ($decval & 0x3f));
return $left.$mid.$right;
}
echo $utf8 = unicode_utf8($unicode);
echo "\n";
?>
输出:e6849f
问题是如何把UTF-8码 e6849f 对应的汉字'感'显示出来??
$unicode = '\u611f'; //中文感Unicode
// Unicode转换utf8函数
function unicode_to_utf8($unicode) {
$utf8_str = '';
$code = intval(hexdec($unicode));
//这里注意转换出来的code一定得是整形,这样才会正确的按位操作
$ord_1 = decbin(0xe0 | ($code >> 12));
$ord_2 = decbin(0x80 | (($code >> 6) & 0x3f));
$ord_3 = decbin(0x80 | ($code & 0x3f));
$utf8_str = chr(bindec($ord_1)) . chr(bindec($ord_2)) . chr(bindec($ord_3));
return $utf8_str;
}
echo unicode_to_utf8($unicode);
?>