国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php 中解決json中文亂碼的函數(shù)

2024-09-04 11:47:48
字體:
供稿:網(wǎng)友

php自帶了json_encode來處理json數(shù)據(jù),那么它們對(duì)中文的支持不好,下面我們來看個(gè)實(shí)例:

echo json_encode(array(123213,'中文'));

{"platformid":"123213","userid":"1023","username":"u00b7u00f0u00b5u00b2u00c9u00b1u00b7u00f0u00ccu00fc"}

我們會(huì)發(fā)現(xiàn),英文可以正確解析,但中文就出來:

u00b7u00f0u00b5u00b2u00c9u00b1u00b7u00f0u00ccu00fc,這可能是unicode編碼,但我沒測試過只是自己猜的。下面我們來看一款解決json中文亂碼的函數(shù)

  1. private function to_utf8($in)  
  2. {  
  3. if (is_array($in)) {  
  4. foreach ($in as $key => $value)  
  5. {  
  6. $out[$this->to_utf8($key)] = $this->to_utf8($value);  
  7. }  
  8. }  
  9. elseif(is_string($in))  
  10. {  
  11. if(mb_detect_encoding()($in) != "utf-8")  
  12. return utf8_encode($in);  
  13. else  
  14. return $in;  
  15. }  
  16. else  
  17. {  
  18. return $in;  
  19. }  
  20. return $out;  

1.把$usr->username直接輸出,頁面頭設(shè)置charset=utf-8.亂碼 

2.echo json_encode($usr)輸出username=null 

3.頁面頭設(shè)置為charset=gbk,輸出正確->可以確定原編碼為gbk 

最后通過ie,chrome,firefox測試得出結(jié)論:

1.保證頁面字符集與數(shù)據(jù)庫一致,輸出一定正常.

2.做json_encode時(shí)保證數(shù)據(jù)編碼是utf-8,json_decode正常.

3.如果要對(duì)非utf-8字符做json_encode,先轉(zhuǎn)換成utf-8.

4.對(duì)非utf-8字符做json_decode的時(shí)候,千萬不能忘記轉(zhuǎn)換成原先的編碼,否則會(huì)輸出亂碼!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁国市| 新和县| 饶阳县| 蚌埠市| 道孚县| 阳泉市| 宜丰县| 加查县| 颍上县| 睢宁县| 泰宁县| 星座| 潮安县| 福清市| 五原县| 陆河县| 东安县| 察雅县| 新巴尔虎右旗| 鹤山市| 北票市| 乌海市| 胶州市| 江北区| 库车县| 陇南市| 宝坻区| 枣强县| 若尔盖县| 沙洋县| 中牟县| 封丘县| 兰溪市| 兴隆县| 肃南| 淄博市| 集贤县| 贞丰县| 同德县| 河津市| 抚远县|