解決策: 1. json_encode() の 2 番目のパラメーターの値を「JSON_UNESCAPED_UNICODE」に設定します; 2. 最初にテキストを urlencode でトランスコードし、次に json_encode() を使用してエンコードし、次に urldecode デコードを実行します。 。
推奨: 「PHP ビデオ チュートリアル 」
json_encode() は変数を JSON エンコードするために使用されます。成功した場合は戻り値を返します。 JSON エンコードされた文字列、または失敗した場合は FALSE。
エンコード処理では、中国語の処理に json_encode がよく使用されますが、問題があり、中国語はトランスコードされ、「\u****」の形式に変換されてしまいます。 ?、コードの文字化けはどうなるのでしょうか?
方法 1: PHP バージョンは 5.4 以降;
echo json_encode( '中文' ); // "\u4e2d\u6587" echo json_encode( '中文', JSON_UNESCAPED_UNICODE ); // "中文"
手順:
構文: json_encode ( $value [, $options = 0 ] )
1. $value はエンコードされる値であり、この関数は UTF8 でエンコードされたデータに対してのみ有効です;
2. オプション: 以下で構成されるバイナリ定数マスク:
JSON_HEX_QUOT、JSON_HEX_TAG、JSON_HEX_AMP、JSON_HEX_APOS、JSON_NUMERIC_CHECK、JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES、JSON_FORCE_OBJECT、JSON_PRESERVE_ZERO_FRACTION、JSON_UNESCAPED _UNICODE、JSON_PARTIAL_OUTPUT _ON_エラー。
3. 2 番目のパラメータは通常は必要ありません;
4. JSON データは実際には文字列であり、var_dump() で出力してデータ型を確認できます。
# #5. 実行が成功した場合は JSON データを返し、それ以外の場合は FALSE を返します。方法 2: まず、中国語の文字の urlencode を json_encode でトランスコードし、次に urldecode デコードします。
echo $con = '中文'; // 中文 echo $con = urlencode( $con ); // %E4%B8%AD%E6%96%87" echo $con = json_encode( $con ); // %E4%B8%AD%E6%96%87" echo $con = urldecode( $con ); // "中文"
はじめにプログラミング へ! !
以上がphp json_encodeの文字化けを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。