$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
Quelle est la raison pour laquelle json_encode ne peut pas être converti ?
Existe-t-il un moyen d'utiliser $urldecodeStr
的数组$arr
pour être normalement encodé dans une chaîne json par json_encode ?
Question
1.json_encode ne peut pas être converti en raison de problèmes d'encodage. Lorsque $str est converti en u8, %99 est un code tronqué.
2. À l’heure actuelle, je ne sais pas ce que vous obtenez %99.
3. Après le décodage de l'URL, la sortie sera tronquée
Solution
1. Utilisez la fonction iconv pour transcoder $str
.2 Supprimez %99 (bien sûr, cela dépend de vous)
Pourquoi directement décoder la chaîne non codée par url
Il y a peut-être un problème avec la corde. . . En principe, json ne prend en charge que l'encodage UTF-8