亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

    各位親愛的小伙伴們,到目前為止有許多小伙伴們問我json_encode函數傳遞中文的話,輸出后是亂碼的,針對這個問題我覺得有必要做一個解釋:

    其實json_encode對中文那不是亂碼,只是json_encode會將中文轉換為unicode編碼,所以輸出后是這個編碼,但不影響我們使用,我們json_decode后就是正常的值了,但如果你想在輸出json_encode的時候也是中文的話,其實有一個辦法,如下:

echo urldecode(json_encode(urlencode("JSON中文輸出解決方案")));

最后祝:學習愉快!


正在回答

11 回答

膜拜一下

1 回復 有任何疑惑可以回復我~
#1

singwa 提問者

非常感謝!
2015-01-07 回復 有任何疑惑可以回復我~

為什么返回碼的message返回的是一串數字而不是中文呢?

0 回復 有任何疑惑可以回復我~

首先各方面統一都是utf-8編碼,在接口輸出頁面 加個 header ?charset下,如果只提供json方式,可以類似這樣

header("content-type: application/json; charset=utf-8");

輸出后就可以看到正常中文字符了

1 回復 有任何疑惑可以回復我~

最后的最后我還是用了一個別人重寫的json_encode,才能輸出正常的中文

0 回復 有任何疑惑可以回復我~
#1

Danmomo

都說是PHP5.4版本,你用PHP5.4以下的肯定不行
2015-10-27 回復 有任何疑惑可以回復我~

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"}}

?

2 回復 有任何疑惑可以回復我~
#1

SunQuan

哥們不行呀,報錯Use of undefined constant JSON_UNESCAPED_UNICODE - assumed 'JSON_UNESCAPED_UNICODE' in D:\phpDemo\app\response.php 怎么辦?好急好急
2015-08-23 回復 有任何疑惑可以回復我~
#2

SunQuan

求回復,求幫助,謝謝謝謝
2015-08-23 回復 有任何疑惑可以回復我~
#3

wangzixue

這個簡單
2016-03-17 回復 有任何疑惑可以回復我~
#4

逍遙的大蝦

echo json_encode($result,JSON_UNESCAPED_UNICODE); 好用
2016-10-26 回復 有任何疑惑可以回復我~
查看1條回復

echo urldecode(json_encode(urlencode("JSON中文輸出解決方案")));這句話放在我代碼的哪里,請指導啊。在線等,急急急.....................

0 回復 有任何疑惑可以回復我~

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碼?

?

?

0 回復 有任何疑惑可以回復我~

學習了,謝老師~

0 回復 有任何疑惑可以回復我~

贊一個

1 回復 有任何疑惑可以回復我~

學習了,謝老師~echo urldecode(json_encode(urlencode("JSON中文輸出解決方案")));

2 回復 有任何疑惑可以回復我~
首頁上一頁12下一頁尾頁

舉報

0/150
提交
取消
PHP開發APP接口
  • 參與學習       79157    人
  • 解答問題       608    個

APP通信接口技術,不得不掌握的法寶,學完之后你會受益良多

進入課程
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號