php unicode转utf-8

$s = '禾光';


$a = getFromUnicode($s);
var_dump($a);
function getFromUnicode($words){
    $letters = explode(';',$words);
    $result = '';
    foreach($letters as $l){
       if(!$l) continue;
      
        $l = hexdec($l);
    
        $l = decbin($l);
        
        $l = '00000000000'.$l;
        $str = array();
        $str[0] = '1110'.substr($l,-16,4);
        $str[1] = '10'.substr($l,-12,6);
        $str[2] = '10'.substr($l,-6);
      
        $txt = '';
        foreach ($str as $value){
            $txt .= chr(bindec($value));
        }
        $result .= $txt;
    }
    
    return $result;
}

function getUnicodeFromOneUTF8($word) {   
   //获取其字符的内部数组表示,所以本文件应用utf-8编码!   
   if (is_array( $word))   
    $arr = $word;   
  else  
     $arr = str_split($word);   
  //此时,$arr应类似array(228, 189, 160)   
   //定义一个空字符串存储   

   $bin_str = '';   
   //转成数字再转成二进制字符串,最后联合起来。
   
   foreach ($arr as $value)   {
   var_dump(decbin(ord($value)));
     $bin_str .= decbin(ord($value));
   }   

    //此时,$bin_str应类似111001001011110110100000,如果是汉字"你"   
   //正则截取   
   $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str);   
    //此时, $bin_str应类似111001001011110110100000,如果是汉字"你"
    
     
      
   return dechex(bindec($bin_str)); //如想返回十六进制4f60,用这句   
 } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值