ホームページ  >  記事  >  バックエンド開発  >  php json_encodeの文字化けを解決するにはどうすればよいですか?

php json_encodeの文字化けを解決するにはどうすればよいですか?

青灯夜游
青灯夜游オリジナル
2020-08-20 10:59:282818ブラウズ

解決策: 1. json_encode() の 2 番目のパラメーターの値を「JSON_UNESCAPED_UNICODE」に設定します; 2. 最初にテキストを urlencode でトランスコードし、次に json_encode() を使用してエンコードし、次に urldecode デコードを実行します。 。

php json_encodeの文字化けを解決するにはどうすればよいですか?

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。