$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
是什么原因造成json_encode无法转换的?
要让使用了$urldecodeStr
的数组$arr
能被json_encode正常编码为json串,有什么方法吗?
问题
1.json_encode无法转化是由于编码问题,在$str 进行u8转码的时候 %99是一个乱码。
2.目前并不知道你得%99是什么鬼。
3.在你urldecode后,输出就已经乱码了
解决
1.使用iconv函数进行转码 $str
2.去掉%99(当然这个看你自己)
干嘛直接urldecode没有编码的字串
字符串有问题吧。。。json原则上只支持UTF-8 编码