各位親愛的小伙伴們,到目前為止有許多小伙伴們問我json_encode函數傳遞中文的話,輸出后是亂碼的,針對這個問題我覺得有必要做一個解釋:
其實json_encode對中文那不是亂碼,只是json_encode會將中文轉換為unicode編碼,所以輸出后是這個編碼,但不影響我們使用,我們json_decode后就是正常的值了,但如果你想在輸出json_encode的時候也是中文的話,其實有一個辦法,如下:
echo urldecode(json_encode(urlencode("JSON中文輸出解決方案")));
最后祝:學習愉快!
2014-12-29
膜拜一下
2016-04-10
為什么返回碼的message返回的是一串數字而不是中文呢?
2015-09-07
首先各方面統一都是utf-8編碼,在接口輸出頁面 加個 header ?charset下,如果只提供json方式,可以類似這樣
header("content-type: application/json; charset=utf-8");
輸出后就可以看到正常中文字符了
2015-08-23
最后的最后我還是用了一個別人重寫的json_encode,才能輸出正常的中文
2015-01-26
echo urldecode(json_encode(urlencode("JSON中文輸出解決方案"))); PHP5.4版本的不行,并且數組還要遍歷值才行,urlencode和urldecode都是對字符串編碼、解碼的。
PHP版本在5.4新增了一個功能就是JSON_UNESCAPED_UNICODE??次掖a
echo json_encode($result,JSON_UNESCAPED_UNICODE);
頁面顯示效果:{"code":200,"message":"返回成功","data":{"id":1,"name":"傾世皇","age":"109"}}
?
2015-01-26
echo urldecode(json_encode(urlencode("JSON中文輸出解決方案")));這句話放在我代碼的哪里,請指導啊。在線等,急急急.....................
2015-01-26
require 'Json.class.php';
$arr=array(
?'id'=>1,
?'name'=>'傾世皇',
?'age'=>'109'
);
foreach($arr as $key=>$val){
?$arr[]=urlencode($val);
}
echo urldecode(json_encode($arr));//這里顯示不亂碼
AppTest::json(200,'返回成功',$arr);
?
header("content-type:text/html;charset=utf-8");
class AppTest{
?/**
? * $code ?狀態碼
? * $message 提示信息
? * $data?返回數據
?*/
?public static function json($code,$message='',$data=array()){
??//is_numeric檢測變量是否數字或數字字符串
??if(!is_numeric($code)){
???echo? 'error';
???exit();
??}
??$result=array(
???'code' => $code,
???'message' => $message,
???'data'?=>$data
??);
??//json_encode生成json數據,json_decode對json數據編碼
//??foreach($result as $key=>$val){
//???$result[]=urlencode($val);
//??}
??//var_dump($result);
??//echo json_encode($result);
??//echo urldecode(json_encode($result));
??exit();
?}
}
這邊類里面的代碼始終都是亂碼
echo urldecode(json_encode(urlencode("JSON中文輸出解決方案")));這句話沒問題,但是urlencode能轉array碼?
?
?
2014-10-20
學習了,謝老師~
2014-10-17
贊一個
2014-10-13
學習了,謝老師~echo urldecode(json_encode(urlencode("JSON中文輸出解決方案")));