php中文输出null,php 生成json,输出了NULL,何解?

$a=mysql_query("SELECT * FROM `qq` WHERE userid='$userid'");

$id= 1;

while($row=mysql_fetch_array($a)){

$name = file_get_contents("http://zx.52reso.com/pznc.php?id=2224503435");

$user =new User();

$user->id = $id++;

$user->qq = $row["qq"];

$user->txUrl ='http://q.qlogo.cn/headimg_dl?dst_uin='.$row["qq"].'&spec=100&img_type=jpg';

$user->qqName = $name;

$user->pczx = $row["pczx"];

$user->txgj = $row["txgj"];

$user->iphone = $row["iphone"];

$user->qqmusic = $row["qqmusic"];

$user->xunzhang = $row["xunzhang"];

$user->qqgame = $row["qqgame"];

$user->qqpay = $row["qqpay"];

$user->qqvip = $row["qqvip"];

$user->qqhtdy = $row["qqhtdy"];

$user->qqhtyy = $row["qqhtyy"];

$user->time = $row["time"];

$data[]=$user;

}

$json = json_encode($data);

echo "{".'"msg"'.":true,"."\"nr\":".$json."}";

输出后,qqName是null值,这$name明明是有文本值的,却输出null我就想不明白了,特来求问

回复讨论(解决方案)

json_encode 只用于 utf-8 编码

你的 $user->qqName 是这么来的

$name = file_get_contents("http://zx.52reso.com/pznc.php?id=2224503435");

$user->qqName = $name;

但是

var_dump(mb_check_encoding($name, 'utf-8')); //bool(false)

var_dump(mb_check_encoding($name, 'gbk')); //bool(true)

知道原因了吗?

json_encode 只用于 utf-8 编码

你的 $user->qqName 是这么来的

$name = file_get_contents("http://zx.52reso.com/pznc.php?id=2224503435");

$user->qqName = $name;

但是

var_dump(mb_check_encoding($name, 'utf-8')); //bool(false)

var_dump(mb_check_encoding($name, 'gbk')); //bool(true)

知道原因了吗?

谢谢,解决了,转码一下

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值