PHP dekodiert Unicode-Kodierung

不言
Freigeben: 2023-03-24 18:58:02
Original
8768 Leute haben es durchsucht

这篇文章主要介绍了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, &#39;\\u&#39;) === 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(&#39;UCS-2&#39;, &#39;UTF-8&#39;, $c);  
                $name .= $c;  
            }  
            else  
            {  
                $name .= $str;  
            }  
        }  
    }  
    return $name;  
}
Nach dem Login kopieren


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

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

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

方案B(次推荐):

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

相关推荐:

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

Das obige ist der detaillierte Inhalt vonPHP dekodiert Unicode-Kodierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage