解决方案 »

  1.   

    $str1 = "这是一个很好的东西商家的";echo preg_replace_callback('/&#\d+;/', function($m) {
      return mb_convert_encoding($m[0], "gbk", 'HTML-ENTITIES'); 
    }, $str1);
    //或
    echo preg_replace_callback('/&#(\d+);/', function($m) {
      return iconv('ucs-2', 'gbk', pack('n', $m[1])); 
    }, $str1);都可以
    当然这样也可以
    $str1 = "这是一个很好的东西商家的";
    echo mb_convert_encoding(mb_convert_encoding($str1, 'HTML-ENTITIES', "gbk"), "gbk", 'HTML-ENTITIES');
      

  2.   


    $str1 = "这是一个很好的东西商家的";
    echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';
    echo unescape($str1);
    /* unicode 转 中文 
    * @param  String $str unicode 字符串 
    * @return String 
    */  
    function unescape($str) {  
        $str = rawurldecode($str);  
        preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r);  
        $ar = $r[0];      foreach($ar as $k=>$v) {  
            if(substr($v,0,2) == "%u"){  
                $ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4",substr($v,-4)));  
            }elseif(substr($v,0,3) == "&#x"){  
                $ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4",substr($v,3,-1)));  
            }elseif(substr($v,0,2) == "&#") {  
                $ar[$k] = iconv("UCS-2BE","UTF-8",pack("n",substr($v,2,-1)));  
            }  
        }  
        return join("",$ar);  
    }  
    这是一个很好的东西商家的