首页 > 社区问答列表 >php如何显示curl返回的Unicode escape strings?如"\u6b22\u8fce\u56de\u6765"

  php如何显示curl返回的Unicode escape strings?如"\u6b22\u8fce\u56de\u6765"

php的curl返回string(42) "{"ret":1,"msg":"u6b22u8fceu56deu6765"}",想知道该怎样显示正确的文字? "u6b22u8fceu56deu6765"对应的是"欢迎回来"

淡淡烟草味
淡淡烟草味

  • ringa_lee
  • ringa_lee   采纳为最佳   2017-05-16 13:07:33 2楼

    如果能处理服务端那可以通过json_encode第二个参数控制中文不编码。
    http://php.net/manual/zh/func...
    不能处理服务端那么可以处理curl返回的结果,先解json,再重新json_encode(也根据第二个参数控制)

    +0 添加回复

  • 漂亮男人
  • 漂亮男人   采纳为最佳   2017-05-16 13:07:33 1楼

    答主还是讲得不够详细,菜鸟就只能在网上慢慢搜索啦...找到一篇完美的解决方法:

    <?php
    $arr = array('p1'=>'nihao','p2'=>2,'ch'=>'码农你好!');
    $json = json_encode($arr);
    echo decodeUnicode($json);
    
    function decodeUnicode($str){
        return preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
            create_function(
                '$matches',
                'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'
            ),
            $str);
    }
    ?>

    参考:http://www.manongjc.com/artic...

    +0 添加回复