php出力jsonおよび表示jsonにおける中国語漢字の詳細と例

1589 ワード

php出力jsonおよび表示json中の中国語漢字
phpでは、配列をjsonに出力する必要があります.json_を使用するだけです.encode関数は配列を処理すればよいが、配列の中に中国語がある場合があり、json_を使用する.Encode関数の処理後、中国語の文字がUnicodeに符号化され、jsonに中国語を表示するにはどうすればいいのでしょうか.下記をご覧ください.
まずphp出力jsonフォーマットについて説明します.
1つの最も簡単な使い方は、配列を直接jsonに出力することです.以下のようにします.

'ni"hao','p2'=>2,'ch'=>'    !');
$json = json_encode($arr);
echo $json;
?>

出力された結果は次のとおりです.
{"p1":"ni\"hao","p2":2,"ch":"\u7801\u519c\u4f60\u597d\uff01"}
ここで注意してください.
二重引用符はjsonで自動的に「」と符号化されます.これはよく理解されています.jsの文字列では、単一引用符、二重引用符、反スラッシュは許可されていません.中国語の文字はUnicodeに符号化されています
書き込みインタフェースであれば、そのまま出力すれば十分で、中国語で処理する必要はありません.クライアントに着いたら、Unicodeの中国語を漢字に変えればいいです.しかし、サーバー側で漢字を直接出力する場合は、次のような処理ができます.

'nihao','p2'=>2,'ch'=>'    !');
$json = json_encode($arr);
echo decodeUnicode($json);

function decodeUnicode($str){
  return preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
    create_function(
      '$matches',
      'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'
    ),
    $str);
}
?>


出力:
{"p 1":"ni"hao","p 2":2,"ch":"こんにちは!"}
この操作は簡単ですが、実は出力結果をマッチングしてUnicodeを漢字に復元します.
 読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!