全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 4879|回复: 18
打印 上一主题 下一主题

技术牛进,PHP取UNICODE编码的JSON中的中文

[复制链接]
跳转到指定楼层
1#
发表于 2012-12-14 14:49:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
80金钱
http://wenwen.soso.com/z/q421101414.htm
两个分都给你吧。
提供两个思路:
1、直接取JSON中的那一段,数组要转成普通变量,直接可以echo $变量 得出“广东深圳”的结果(转成UTF-8编码)。
2、转成UTF-8正则匹配取汉字或者匹配UNICODE取汉字再转成UTF-8。

AVELINE妹纸给我写的我这整不出来。

最佳答案

查看完整内容

废话不说,直接上代码,需要php装有iconv以上代码已经过测试
2#
发表于 2012-12-14 14:49:51 | 只看该作者
本帖最后由 李院长 于 2012-12-14 17:43 编辑

废话不说,直接上代码,需要php装有iconv
  1. <?php
  2. $text = file_get_contents('http://www.youdao.com/smartresult-xml/search.s?jsFlag=true&type=mobile&q=13760191994');
  3. $text = iconv('gbk', 'utf-8', $text);
  4. preg_match("/\{.*\'location\'\:\'(.*)\'\.*}/", $text, $matches);
  5. // 值在 $matches[1]
  6. echo $matches[1];
  7. ?>
复制代码
以上代码已经过测试

3#
发表于 2012-12-14 14:51:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
4#
发表于 2012-12-14 14:52:20 | 只看该作者
先转码 iconv
再json_decode
5#
 楼主| 发表于 2012-12-14 14:53:41 | 只看该作者
html5 发表于 2012-12-14 14:51
$data_array=json_decode($json_data,1);
返回的$data_array,就是你想要有数据组成的数组了。 ...

不行,空的。
6#
发表于 2012-12-14 14:55:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
7#
发表于 2012-12-14 15:00:22 | 只看该作者
本帖最后由 Comcast 于 2012-12-14 15:08 编辑
html5 发表于 2012-12-14 14:55
看JSON是怎么转换的了。PHP的JSON转换出去后,中文是转换成了\u5555这种格式了的 ...


表示无压力,怎么感觉你们是反向。还原json为数组。我遇到中文变成null或者\u3932 这种 是 数组转json才会遇到,因为转换时json自己对字符串进行unicode 编码。

怎么看怎么觉的你这个奇怪,按理直接转换 echo 就行了。

  1. function unicode2utf8($str){
  2.         if(!$str) return $str;
  3.         $decode = json_decode($str);
  4.         if($decode) return $decode;
  5.         $str = '["' . $str . '"]';
  6.         $decode = json_decode($str);
  7.         if(count($decode) == 1){
  8.                 return $decode[0];
  9.         }
  10.         return $str;
  11. }

  12. $json = unicode2utf8($json);
  13. $json = json_decode($json,true);
  14. echo $json['location'];
复制代码
8#
发表于 2012-12-14 15:00:24 | 只看该作者
看到写程序,我就弱弱滴打了个酱油。
9#
 楼主| 发表于 2012-12-14 15:06:48 | 只看该作者
Comcast 发表于 2012-12-14 15:00
表示无压力,怎么感觉你们是反向。还原json为数组。我遇到中文变成null或者\u3932 这种 是 数组转json才 ...

来吧 直接来个代码
10#
发表于 2012-12-14 15:13:27 | 只看该作者
6楼代码不行么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-3 02:05 , Processed in 0.294976 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表