php中常用的兩個函數 encode_json()和decode_json() ;
我們重點說一下encode_json()函數在進行中文編碼時出現亂碼的解決方法。
首先,我們寫出所需要的數組:
<?php
$json = array (
0 =>
array (
id => 13,
name => 乒乓球,
),
1 =>
array (
id => 17,
name => 籃球,
)
)
?>
如果我們直接用encode_json進行編碼的話,輸出結果是:
<?php
[{"id":"13","name":null}
,{"id":"13","name":null}]
?>
很明顯,中文字符沒有編碼正確。這是因為json僅僅轉義encoding編碼,
(假設我們後台文件用的是gb2312編碼)故上面語句應該先轉換編碼:
foreach ($ajax as $key=>$val)
{
$ajax[$key][name] =
urlencode($val[name]);
}
echo json_encode($json);
?>
同理,在客戶端js代碼中隊已經編碼的中文進行decodeURI()解碼即可。
至此,解決php中json中文編碼問題。