Web 開発では、ページにデータを動的に読み込むために、PHP の配列を JSON 形式に変換することが必要になることがよくあります。ただし、配列を JSON に変換するプロセス中に、中国語のエンコードの問題が発生し、データが正しく表示されなくなる場合があります。この記事では、PHP 配列を JSON に変換するプロセスで中国語のエンコードの問題をフィルタリングして、データがページ上に正常に表示されるようにする方法について説明します。
1. PHP 配列を JSON に変換する
PHP では、 json_encode() 関数を使用して配列を JSON 形式に変換します。たとえば、次の配列がある場合:
$arr = array( "name" => "张三", "age" => 25, "gender" => "男" );
次のコードを使用して、それを JSON 形式に変換できます:
$json = json_encode($arr); echo $json; // 输出:{"name":"张三","age":25,"gender":"男"}
2. 中国語のエンコードの問題
ただし、配列に中国語が含まれています 文字を使用する場合、変換された JSON 形式でエンコードの問題が発生する可能性があります。たとえば、次の配列を JSON 形式に変換します:
$arr = array( "name" => "李四", "age" => 30, "gender" => "男", "desc" => "这是一个描述,包含中文字符" );
json_encode() 関数を使用して、JSON 形式に変換します:
$json = json_encode($arr); echo $json; // 输出:{"name":"u674eu56db","age":30,"gender":"u7537","desc":"u8fd9u662fu4e00u4e2au63cfu8ff0uff0cu5305u542bu4e2du6587u5b57u7b26"}
ご覧のとおり、中国語の文字は Unicode 文字としてエンコードされます。ページ上に正常に表示されている状態では使用できません。これは、デフォルトでは、異なるプラットフォーム間でデータを転送するために json_encode() 関数が非 ASCII 文字を Unicode 文字にエンコードするためです。
3. 中国語のフィルター
中国語のエンコードの問題を解決するには、JSON_UNESCAPED_UNICODE パラメーターを使用して中国語の文字をフィルターできます。このパラメーターにより、json_encode() 関数は、JSON の変換時に中国語の文字を Unicode 文字にエンコードせず、中国語の文字を直接出力できるようになります。
上記のコードを次のように変更します。
$json = json_encode($arr, JSON_UNESCAPED_UNICODE); echo $json; // 输出:{"name":"李四","age":30,"gender":"男","desc":"这是一个描述,包含中文字符"}
中国語の文字が他の文字と同様に出力され、ページ上に正常に表示されることがわかります。
4. 概要
PHP 配列を JSON 形式に変換する場合、配列に中国語の文字が含まれている場合は、中国語のエンコードの問題に注意する必要があります。 JSON_UNESCAPED_UNICODE パラメーターを使用して中国語の文字をフィルターし、データがページ上に正常に表示されるようにすることができます。
以上がPHP配列をJSONに変換して中国語をフィルタリングするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。