PHP 配列の JSON エンコーディングの問題
質問:
PHP の json_encode( ) MySQL テーブルデータを JSON に変換する関数ですが、遭遇しています奇妙な行動。この関数は、特定のクエリ、特に特殊文字や特定の大陸コードを含むクエリのデータをエンコードしません。
コード スニペット:
<code class="php">$result = mysqli_query($con, "SELECT * FROM countries WHERE continent_code='EU'") or die(mysqli_error($con)); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $orders[] = array( 'CountryCode' => $row['code'], 'CountryName' => $row['name'] ); } echo json_encode($orders);</code>
観察:
問題:
json_encode() 関数では、すべての受信データが UTF-8 でエンコードされている必要があります。特殊文字および特定の大陸コードは、データベース内またはデータ操作中に適切にエンコードされない可能性があります。
解決策:
Web アプリケーション全体で UTF-8 エンコードを確認してください。これには以下が含まれます:
RFC4627 には、「JSON テキストは Unicode でエンコードされるものとします。デフォルトのエンコードは UTF-8 です。」と記載されています。 UTF-8 エンコーディングを保証することで、json_encode() は内容に関係なくすべてのデータを正しく処理できるようになります。
以上がPHP の特定の大陸コードで「json_encode()」が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。