当前位置:Gxlcms > PHP教程 > PHP解码unicode编码

PHP解码unicode编码

时间:2021-07-01 10:21:17 帮助过:2人阅读

这篇文章主要介绍了PHP解码unicode编码 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

function unicode_decode($name)  {  
    //方法一
    $name = str_replace("\\\\u","\u",$name);    $json = '{"str":"'.$name.'"}';    $arr = json_decode($json,true);    if(empty($arr)) return ''; 
    return $arr['str'];    //方法二
    // 转换编码,将Unicode编码转换成可以浏览的utf-8编码  
    $pattern = '/([\w]+)|(\\\u([\w]{4}))/i';  
    preg_match_all($pattern, $name, $matches);  
    if (!empty($matches))  
    {  
        $name = '';  
        for ($j = 0; $j < count($matches[0]); $j++)  
        {  
            $str = $matches[0][$j];  
            if (strpos($str, '\\u') === 0)  
            {  
                $code = base_convert(substr($str, 2, 2), 16, 10);  
                $code2 = base_convert(substr($str, 4), 16, 10);  
                $c = chr($code).chr($code2);  
                $c = iconv('UCS-2', 'UTF-8', $c);  
                $name .= $c;  
            }  
            else  
            {  
                $name .= $str;  
            }  
        }  
    }  
    return $name;  
}


以下是网上找的方法:
方案A(稳定版+推荐):

function replace_unicode_escape_sequence($match) {
  return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}$name = '\u65b0\u6d6a\u5fae\u535a';$str = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $name);echo $str; //
输出: 新浪微博
//咱将上述方案A给封装起来~~~(方案A稳定版+升级+推荐)class Helper_Tool{
  static function unicodeDecode($data)
  {  
    function replace_unicode_escape_sequence($match) {
      return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
    }  

    $rs = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $data);    return $rs;
  }  
}//调用$name = '\u65b0\u6d6a\u5fae\u535a';$data = Helper_Tool::unicodeDecode($name); //
输出新浪微博

方案B(次推荐):

<?phpfunction unicodeDecode($name){
  $json = '{"str":"'.$name.'"}';  $arr = json_decode($json,true);  if(empty($arr)) return ''; 
  return $arr['str'];
}$name = '\u65b0\u6d6a\u5fae\u535a';echo unicodeDecode($name); //
输出: 新浪微博

相关推荐:

php解码js使用escape转码的函数

以上就是PHP解码unicode编码 的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行