json_encode无法使用urldecode

时间:2015-11-13 11:08:40

标签: php json decode urldecode

json_encode无法使用urldecode。请给出一些解决方案

<?php
$decode_str = array();
$str = "%ED%A0%BD%ED%BA%97%D9%BE%D8%B1%D8%A7%DB%8C%D8%AF+89%D8%A8%D8%AF%D9%88%D9%86+%D8%B1%D9%86%DA%AF.+%D8%AA%DA%A9+%D8%B3%D9%88%D8%B2%ED%A0%BD%ED%BA%97";

$decode_str['output'] = urldecode($str);
echo json_encode($decode_str);
?>

2 个答案:

答案 0 :(得分:1)

如果在其末尾添加echo json_last_error_msg();,您将看到存在json错误。

Malformed UTF-8 characters, possibly incorrectly encoded

您尝试编码的字符串包含格式错误的UTF-8字符。在将其编码为json之前,您需要修复已分类的编码。

答案 1 :(得分:1)

也可以使用 utf8_decode ()。

$decode_str = array();

$str = "%ED%A0%BD%ED%BA%97%D9%BE%D8%B1%D8%A7%DB%8C%D8%AF+89%D8%A8%D8%AF%D9%88%D9%86+%D8%B1%D9%86%DA%AF.+%D8%AA%DA%A9+%D8%B3%D9%88%D8%B2%ED%A0%BD%ED%BA%97";

$decode_str['output'] = utf8_decode(urldecode($str));

echo json_encode($decode_str);