Pourquoi `json_encode()` échoue-t-il lors de l'encodage de guillemets simples en PHP avec l'encodage Windows-1252 ?

Patricia Arquette
Libérer: 2024-10-27 08:15:31
original
524 Les gens l'ont consulté

Why Does `json_encode()` Fail When Encoding Single Quotes in PHP with Windows-1252 Encoding?

Échec de json_encode de PHP avec des guillemets simples

Dans un scénario impliquant un objet PHP stdClass ($post), la fonction json_encode() de manière inattendue, ne parvient pas à encoder la propriété post_title, ce qui entraîne une valeur nulle dans la sortie JSON. Malgré l'encodage UTF-8 apparent de la base de données, il semble que le processus de récupération des données ne soit pas correctement configuré.

Cause : Encodage incorrect

Le JSON le problème d'encodage provient d'un encodage incorrect du caractère guillemet simple dans post_title. Plus précisément, le caractère est codé en Windows-1252, ce qui donne une valeur hexadécimale de 92, ce qui n'est pas un caractère UTF-8 valide.

Solution : définir le codage de connexion à la base de données

Pour résoudre ce problème, il est nécessaire de définir l'encodage de connexion à la base de données sur UTF-8. La méthode utilisée dépend de l'API employée :

  • MySQL : mysql_set_charset("utf8")
  • MySQLi : mysqli_set_charset("utf8")
  • PDO (PHP > ;= 5.3.6) : paramètre charset dans la chaîne de connexion
  • PDO (versions antérieures) : SET NAMES utf8

Considérations supplémentaires

Il est important de noter que la définition de l'encodage de la connexion garantit que les données récupérées de la base de données sont correctement encodées en UTF-8. Cependant, si les données sont stockées dans un codage incorrect, tel que Windows-1252, une conversion manuelle via utf8_encode() ou d'autres moyens peut être nécessaire.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!