Maison > Article > développement back-end > Pourquoi la fonction json_encode de PHP encode-t-elle les données de manière incohérente sur le code du continent ?
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.
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!