Assurer l'encodage UTF-8 dans la sortie json_encode de PHP pour les caractères non-ASCII
Malgré les efforts visant à activer l'encodage UTF-8 via mb_internal_encoding et utf8_encode , json_encode continue de renvoyer les caractères Unicode échappés dans la chaîne JSON résultante. Ce problème peut être résolu par différentes approches.
Option JSON_UNESCAPED_UNICODE dans PHP 5.4
Si vous utilisez PHP 5.4 ou version ultérieure, exploitez l'option JSON_UNESCAPED_UNICODE lors de l'appel de json_encode. Cette option désactive explicitement l'échappement Unicode, conduisant au résultat attendu : {"a":"á"}.
Encodeur JSON personnalisé avec prise en charge non-ASCII
Pour versions PHP antérieures, créez un encodeur JSON personnalisé qui n'échappe pas aux caractères non-ASCII. Cette approche garantit que la chaîne JSON représente avec précision l'entrée d'origine.
Modification de l'encodeur JSON de Pear
Une solution alternative consiste à modifier l'encodeur JSON de Pear en supprimant les lignes 349 à 433. Ce changement désactive efficacement l'échappement Unicode dans l'encodeur, ce qui entraîne la sortie souhaitée.
Conclusion
Ces techniques fournissent des moyens viables de générer des chaînes JSON codées en UTF-8, permettant représentation précise des caractères non-ASCII sans échappement Unicode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!