php (php > 5.2) の json_encode() 組み込み関数を使用すると、php のデータを転送して他の言語でうまく使用できます。
この関数の機能は、数値をjsonデータ保存形式に変換することです。
[php]
$arr = 配列
(
'名前'=>'シア'、
「年齢」=>20
);
$jsonencode = json_encode($arr);
$jsonencode をエコーします。
?>
プログラムの実行結果は次のとおりです:
[php]
{"名前":null,"年齢":20}
○中国語では json_encode 関数が NULL でエンコードされているのは、フロントエンドとの連携を密にするため、JSON が UTF-8 コードのみをサポートしているためだと思います。 。
[php]
json_encode または U2353 が出現した後、配列内のすべての中国語が消えました。
解決策は、urlencode() 関数を使用して以下を処理することです。json_encode の前に、urlencode() を使用してすべての配列の内容を処理し、次に json_encode() を使用してそれを JSON 文字列に変換し、最後に urldecode() を使用します。 ) をエンコードして中国語が転送されます。
[php]
/*************************************************** * **********
* www.2cto.com
* 特定の関数を使用して配列内のすべての要素を処理します
* @param string &$array 処理対象の文字列
* @param string $function 実行する関数
* @return boolean $apply_to_keys_only キーにも適用されるかどうか
* @アクセス公開
*
************************************************* * ***********/
function arrayRecursive(&$array, $function, $apply_to_keys_only = false)
{
静的 $recursive_counter = 0;
if (++$recursive_counter > 1000) {
die('深い再帰攻撃の可能性');
}
foreach ($array as $key => $value) {
if (is_array($value)) {
arrayRecursive($array[$key], $function, $apply_to_keys_only);
} その他 {
$array[$key] = $function($value);
}
if ($apply_to_keys_only && is_string($key)) {
$new_key = $function($key);
if ($new_key != $key) {
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
}
/*************************************************** * **********
*
* 配列を JSON 文字列に変換します (中国語と互換性があります)
* @param array $array 変換する配列
* @return string 変換されたjson文字列
* @アクセス公開
*
************************************************* * ***********/
関数 JSON($array) {
arrayRecursive($array, 'urlencode', true);
$json = json_encode($array);
urldecode($json)を返します;
}
$array = 配列
(
'名前'=>'希亚',
「年齢」=>20
);
エコー JSON($array);
?>
今回は成功しました、运行結果如下:
[php] plaincopy を表示
{"名前":"希亚","年齢":"20"}
作者:wolinxuebin