1. 程式人生 > >將utf-8格式的漢字轉換成16進位制

將utf-8格式的漢字轉換成16進位制

//字串轉換成16進位制
function str2hex($str){
    $hex = '';
    for($i=0,$length=mb_strlen($str); $i<$length; $i++){
        $hex .= dechex(ord($str{$i}));
    }
    return $hex;
}
//16進位制轉換成字串
function hex2str($hex){
    $str = '';
    $arr = str_split($hex, 2);
    foreach($arr as $bit){
        $str .= chr(hexdec($bit));
    }
    return $str;
}
function test(){
    //utf8字元測試
    $str = '中文';
    echo mb_strlen($str);
    echo '';
            
    $hex = str2hex($str);
    echo $hex;
    echo '';
            
    $dec = hex2str($hex);
    echo $dec;
    echo "";
    echo "<hr>";
    //gbk測試
    $gbkstr = mb_convert_encoding($str,'GBK','UTF-8');
    echo mb_strlen($gbkstr);
    echo '';
            
    $hex = str2hex($gbkstr);
    echo $hex;
    echo '';
        
    $dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');
    echo $dec;
    echo "";
}