ホームページ > バックエンド開発 > PHPチュートリアル > JSON データをデコードおよびエンコードするときに、PHP で Unicode 文字をどのように処理しますか?

JSON データをデコードおよびエンコードするときに、PHP で Unicode 文字をどのように処理しますか?

Barbara Streisand
リリース: 2024-11-03 13:26:02
オリジナル
644 人が閲覧しました

How do you handle Unicode characters in PHP when decoding and encoding JSON data?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート