json_encode не работает с 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

Решение

Если вы добавите echo json_last_error_msg(); в конце этого вы увидите, что есть ошибка JSON.

Malformed UTF-8 characters, possibly incorrectly encoded

Строка, которую вы пытаетесь закодировать, имеет некорректные символы UTF-8. Вам нужно будет исправить кодировку charated, прежде чем вы сможете закодировать ее в json.

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);
1

По вопросам рекламы [email protected]