1.查看任意字符编码
$str = '回';
$bin = pack("C3", ord($str{0}), ord($str{1}), ord($str{2}));
$hex = strtoupper(bin2hex($bin));
//切换文本编码可查看GBK编码
echo "UTF-8编码: " . $hex . "\n";
$byte1 = ord($str{0});
$byte2 = ord($str{1});
$byte3 = ord($str{2});
$c1 = (($byte1 & 0x0F) << 4) | (($byte2 & 0x3F) >> 2);
$c2 = (($byte2 & 0x03) << 6) | ($byte3 & 0x3F);
$dec = (($c1 & 0x00FF) << 8) | $c2;
echo "Unicode编码: " . $dec . "\n";
2. 关于ISO 8859-1编码
ISO 8859-1又称 Latin-1 或西欧语言。是国际标准化组织内ISO/IEC 8859的第一个8位字符集。它以ASCII为基础,在空置的0xA0-0xFF的范围内,加入96个字母及符号,藉以供使用附加符号的拉丁字母语言使用。
因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。
3.GB2312(0xB0A1~0xF7FE)
for($i=0xB0;$i<=0xF7;$i++)
for($j=0xA1;$j<=0xFE;$j++)
echo mb_convert_encoding( pack('CC',$i,$j), "UTF-8", "GB2312" );
UTF-8(0x4E00~0x9FA5)
$a = ' ["' ;
for ($i = 0X4e00; $i <= 0x9fa5; $i ++) {
$a .= '\u' . dechex ($i);
}
$a .= '"] ' ;
$b = json_decode($a);
print_r($b[0]);