【发布时间】:2013-01-23 14:43:14
【问题描述】:
能否请您解释一下这行代码如何等效于下一个代码:
<?php
$string = chr( ( $number >> 6 ) + 192 ).chr( ( $number & 63 ) + 128 );
?>
相当于:
if ( $number >=128 && $number <=2047 ){
$byte1 = 192 + (int)($number / 64); //= 192 + ( $number >> 6 )
$byte2 = 128 + ($number % 64); //= 128 + ( $number & 63 )
$utf = chr($byte1).chr($byte2);
}
例如输入数字 1989 都会产生 ߅
这些代码用于将 UNICODE 实体转换回原始 UTF-8 字符。
【问题讨论】:
-
在 Wikipedia 上查找 UTF-8 编码。他们对它的工作原理进行了详尽的描述。一旦你理解了编码,这段代码就非常简单了。
-
问题是如何 (int)($number / 64) =? ( $number >> 6 )