PHP で Unicode 文字を使用した JSON のデコードとエンコード
Unicode 文字を含む JSON データを操作する場合、デコード中に文字の整合性を維持することが重要ですそしてエンコーディング。 PHP では、Unicode 文字の処理にいくつかの課題が生じる可能性があります。
Unicode 文字を使用した JSON のデコード
デフォルトでは、PHP の json_decode() 関数は JSON 文字列が UTF-8 であることを想定しています。エンコードされた。 Unicode 文字が UTF-8 でエンコードされていない場合、正しくデコードされません。これを解決するには、JSON 文字列をデコードする前に utf8_decode() を使用します。
<code class="php">$json = '{"Tag":"Odómetro"}'; $decoded = json_decode(utf8_decode($json));</code>
Unicode 文字を使用した JSON のエンコード
JSON データを変更した後、エンコードする必要があります。それを JSON 文字列に戻します。デフォルトでは、 json_encode() は JSON 標準に準拠するために Unicode 文字をエスケープします。 Unicode 文字のエスケープを防ぐには、JSON_UNESCAPED_UNICODE フラグを使用します。
<code class="php">$encoded = json_encode($decoded, JSON_UNESCAPED_UNICODE);</code>
エンコードされた Unicode 文字のエスケープ解除
エンコードされた Unicode 文字のエスケープを解除する必要がある場合は、html_entity_decode を使用できます。 () function:
<code class="php">$unescaped = html_entity_decode($encoded);</code>
PHP バージョン
JSON_UNESCAPED_UNICODE フラグは PHP バージョン 5.4 以降でのみ使用できることに注意してください。以前のバージョンでは、正規表現を使用して Unicode 文字を検索し、エスケープを解除できます:
<code class="php">$regex = '/\\u([0-9a-fA-F]{4})/'; $unescaped = preg_replace($regex, '&#x\1;', $encoded);</code>
以上がJSON データをデコードおよびエンコードするときに、PHP で Unicode 文字をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。