這是我寫的Unicode碼產生UTF-8對應的碼值
//3位元組 1110xxxx 10xxxxxx 10xxxxxx $unicode = '\u611f'; //中文感Unicodefunction 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'; //中文感Unicodefunction 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);?>