$data="JSON中文";
$newData=iconv("GB2312","UTF-8//IGNORE",$data);
//ignore的意思是忽略轉換時的錯誤,如果沒有ignore參數,所有該字符後面的字符都不會被保存。
//或是("GB2312","UTF-8",$data); echo $newData;
<?php
$testJSON=array('name'=>'中文字符串','value'=>'test');
//echo json_encode($testJSON);
foreach ( $testJSON as $key => $value ) {
$testJSON[$key] = urlencode ( $value );
}
echo urldecode ( json_encode ( $testJSON ) );
?>
查看輸出結果爲:
{“name”:”中文字符串”,”value”:”test”}
到此,成功地輸出了中文字符。隨意使用json_encode吧。這樣子在PHP後臺輸出的JSON字符串在前臺javascript中Ajax接收後eval出來也不會出現中文亂碼,因爲js在處理JSON格式數據是也是以UTF8的形式進行的,與PHP類似,故接收PHP頁面的JSON字符串不會出現問題。