PHP でよく使用される 2 つの関数は、encode_json() と decode_json() です。
中国語をエンコードするときに encode_json() 関数が文字化けを引き起こす問題の解決策に焦点を当てましょう。
まず、必要な配列を書き出します:
$json = array (
0 =>
array (
id => 13,
name => Table Tennis,
),
1 =>
array (
id => 17,
name => バスケットボール,
)
)
?>
encode_json を使用して直接エンコードすると、出力結果は次のようになります:
[ { "id":"13","name":null}
,{"id":"13","name":null}]
?>
明らかに、中国語の文字は正しくエンコードされていません。これは、json がエンコーディング
のみをエスケープするためです (バックグラウンド ファイルが gb2312 エンコーディングを使用していると仮定します)。そのため、上記のステートメントは最初にエンコーディングを変換する必要があります:
foreach ($ajax as $key=>$val)
{
$ajax [ $key][name] =
urlencode($val[name]);
}
echo json_encode($json);
?>
同様に、クライアント JS コード スクワロンでエンコードされた中国語を decodeURI() でデコードします。それ。
これまでのところ、php での json の中国語エンコードの問題は解決されました。