php - 经过urldecode处理后的一段字符串,被用于数组元素中,导致json_encode无法将该数组转换成json串,该如何解决?
淡淡烟草味
淡淡烟草味 2017-05-24 11:33:54
[PHP讨论组]
$str = 'Success is 1% inspiration and %99 perspiration';
$urldecodeStr = urldecode($str);
$arr = [
        'doc' => $urldecodeStr
    ];
echo $urldecodeStr; //输出: Success is 1% inspiration and � perspiration
echo "<br>";
var_dump(json_encode($arr));//返回false
  1. 是什么原因造成json_encode无法转换的?

  2. 要让使用了$urldecodeStr的数组$arr能被json_encode正常编码为json串,有什么方法吗?

淡淡烟草味
淡淡烟草味

全部回复(3)
天蓬老师

问题

1.json_encode无法转化是由于编码问题,在$str 进行u8转码的时候 %99是一个乱码。
2.目前并不知道你得%99是什么鬼。
3.在你urldecode后,输出就已经乱码了

解决

1.使用iconv函数进行转码 $str
2.去掉%99(当然这个看你自己)

phpcn_u1582

干嘛直接urldecode没有编码的字串

滿天的星座

字符串有问题吧。。。json原则上只支持UTF-8 编码

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号