Maison >développement back-end >tutoriel php >Pourquoi la fonction json_encode de PHP encode-t-elle les données de manière incohérente sur le code du continent ?

Pourquoi la fonction json_encode de PHP encode-t-elle les données de manière incohérente sur le code du continent ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 08:08:021076parcourir

Why is PHP's json_encode Function Encoding Data Inconsistently Based on Continent Code?

Irrégularité de l'encodage JSON avec json_encode de PHP

Ce problème survient lors de la tentative d'encodage des données d'une table de base de données en JSON à l'aide de la fonction json_encode() de PHP. Curieusement, le comportement diffère en fonction des données d'entrée.

Des requêtes telles que "SELECT FROM country WHERE continent_code='AS'" renvoient avec succès des valeurs JSON, tandis que d'autres, telles que "SELECT FROM country WHERE continent_code='EU'", ne parvenez pas à le faire. Étonnamment, les codes de continent comme « EU », « NA » et « AF » se comportent différemment des autres.

En examinant le code, nous réalisons que le problème réside dans la fonction json_encode().

<code class="php">while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
  $orders[] = array(
    'CountryCode' => $row['code'],
    'CountryName' => $row['name']
  );
}

echo json_encode($orders);</code>

Les données sont correctement renseignées dans le tableau $orders avant d'être transmises à json_encode(). Cependant, la fonction ne parvient pas à l'encoder pour certains codes de continent.

La clé pour résoudre ce problème réside dans la garantie de l'encodage UTF-8 dans toute votre application Web.

  • PHP Configuration : Définissez l'encodage de tous les fichiers sur UTF-8.
  • Configuration de la base de données : Spécifiez le jeu de caractères de votre base de données sur UTF-8.
  • Configuration du navigateur : assurez-vous que votre navigateur est configuré pour utiliser le codage UTF-8.

En adhérant à ces directives, vous pouvez résoudre l'irrégularité du codage JSON et garantir le comportement cohérent de votre code pour toutes les données d'entrée.

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!

Déclaration:
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