json字符串,中文Unicode编码,PHP解析问题,谢谢!

发布于 2022-09-06 12:00:48 字数 571 浏览 18 评论 0

http://ip.taobao.com/instruct...

接口返回这样的数据,

{"code":0,"data":{"ip":"210.75.225.254","country":"\u4e2d\u56fd","area":"\u534e\u5317",
"region":"\u5317\u4eac\u5e02","city":"\u5317\u4eac\u5e02","county":"","isp":"\u7535\u4fe1",
"country_id":"86","area_id":"100000","region_id":"110000","city_id":"110000",
"county_id":"-1","isp_id":"100017"}}

类似这样的

"region":"\u5317\u4eac\u5e02","city":"\u5317\u4eac\u5e02"

php怎么解析出来正确的汉字呢?
谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

影子是时光的心 2022-09-13 12:00:48
var_dump(json_decode('{"code":0,"data":{"ip":"210.75.225.254","country":"\u4e2d\u56fd","area":"\u534e\u5317",
"region":"\u5317\u4eac\u5e02","city":"\u5317\u4eac\u5e02","county":"","isp":"\u7535\u4fe1",
"country_id":"86","area_id":"100000","region_id":"110000","city_id":"110000",
"county_id":"-1","isp_id":"100017"}}'));
北音执念 2022-09-13 12:00:48
function unicodeDecode($str){
  $json = '{"str":"'.$str.'"}';
  $arr = json_decode($json,true);
  if(empty($arr)) return ''; 
  return $arr['str'];
}
你是暖光i 2022-09-13 12:00:48

解决办法:
首先自定义一个函数,处理接到接口的数据,将所有Unicode编码的替换为utf8,

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);
    }

PHP接口获取数据后,先执行这个函数,替换后,再执行 json_decode($str, true),这样直接可以把接口数据转化为数组了

苯莒 2022-09-13 12:00:48

json_decode($json,true);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文