"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi `json_encode ()` renvoie les valeurs nulles pour les propriétés avec des devis uniques?

Pourquoi `json_encode ()` renvoie les valeurs nulles pour les propriétés avec des devis uniques?

Publié le 2025-02-28
Parcourir:298

Why is `json_encode()` returning null values for properties with single quotes?

JSON Encoding défaillance: résolution de diverpancies avec des citations uniques

Les développeurs rencontrent fréquemment des échecs silencieux lorsque vous essayez d'encoder des objets en utilisant la fonction JSON_Encode () de Php. Dans ce contexte, un utilisateur a rencontré un problème où l'encodage d'un objet STDClass a entraîné des valeurs nulles pour les propriétés contenant des citations uniques.

Analyse

En examinant le problème, il a été découvert que la cause sous-jacente de la gamme Ascii. Le caractère de devis unique, représenté comme \ x92 dans un vidage hexadécimal, était particulièrement problématique.

Solution

Pour résoudre le problème, il est essentiel de s'assurer que les données encodées sont correctement encodées dans UTF-8. Ceci peut être réalisé en définissant le codage de connexion MySQL de manière appropriée, en fonction de l'API utilisée:

  • old (déprécésé) api: mysql_set_charset ("utf8")
  • mysqli: mysqli_set_charset ("utf8")
  • PDO: Ajoutez le paramètre de charse à la chaîne de connexion ou exécutez les noms de définition utf8 si en utilisant php 5.3.6 ou antérieure. utf8_decode () pour convertir le texte en un format correctement codé. Cependant, cela ne donne pas toujours le résultat souhaité, car il suppose que le texte est codé dans ISO-8859-1.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3