近年、Web テクノロジーの継続的な発展に伴い、フロントエンドとバックエンド間のデータのやりとりがますます一般的になってきています。このプロセスでは、データ形式の変換が特に重要です。この記事ではphpで中国語配列をjson形式に変換する方法を紹介します。
1. 中国語配列とは
中国語配列は、配列要素のキー名と値が中国語の文字列である点を除けば、通常の配列と似ています。例:
$cn_arr = array("姓名"=>"张三","年龄"=>20,"性别"=>"男");
2. JSON とは
JSON (JavaScript Object Notation) はデータ交換用の言語で、データを簡潔な形式で表現し、読み書きが容易です。 JSON は数値、文字列、ブール値、配列、オブジェクトなどを表すことができ、Web アプリケーションで広く使用されています。例:
{ "name": "John", "age": 30, "city": "New York" }
3. 中国語配列を JSON に変換
PHP では、json_encode() 関数を使用して中国語配列を JSON 形式に変換できます。例:
$cn_arr = array("姓名"=>"张三","年龄"=>20,"性别"=>"男"); $json_str = json_encode($cn_arr,JSON_UNESCAPED_UNICODE); echo $json_str;
コードの JSON_UNESCAPED_UNICODE パラメータは、中国語の文字化けを防ぐためのものです。つまり、中国語は Unicode でエンコードされません。
きちんとした JSON 形式を出力したい場合は、json_encode() 関数の 2 番目のパラメーター JSON_PRETTY_PRINT を使用できます。例:
$cn_arr = array("姓名"=>"张三","年龄"=>20,"性别"=>"男"); $json_str = json_encode($cn_arr,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT); echo $json_str;
出力結果は次のとおりです:
{ "姓名": "张三", "年龄": 20, "性别": "男" }
json_encode() 関数は UTF-8 でエンコードされた文字列のみを処理できることに注意してください。 PHP ファイルのエンコードが UTF-8 でない場合は、mb_convert_encoding() 関数を使用して、配列要素を UTF-8 でエンコードされた文字列に変換する必要があります (例:
$cn_arr = array("姓名"=>"张三","年龄"=>20,"性别"=>"男"); $utf8_arr = array(); foreach($cn_arr as $key=>$value){ $utf8_arr[mb_convert_encoding($key,"UTF-8","auto")]=mb_convert_encoding($value,"UTF-8","auto"); } $json_str = json_encode($utf8_arr,JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT); echo $json_str;
4. JSON から中国語配列へ##)
#php では、json_decode() 関数を使用して、JSON 形式の文字列を配列に変換できます。例:$json_str = '{"姓名":"张三","年龄":20,"性别":"男"}'; $cn_arr = json_decode($json_str,true); print_r($cn_arr);
Array ( [姓名] => 张三 [年龄] => 20 [性别] => 男 )
$json_str = '{"姓名":"张三","年龄":20,"性别":"男"}'; $utf8_str = mb_convert_encoding($json_str,"UTF-8","auto"); $cn_arr = json_decode($utf8_str,true); print_r($cn_arr);
以上がPHPで中国語配列をJSONに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。