国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 嘉峪关市| 惠来县| 东宁县| 静宁县| 太谷县| 民丰县| 梁平县| 石河子市| 广宗县| 安溪县| 鸡东县| 贵德县| 兴业县| 吉木乃县| 贵阳市| 大庆市| 双江| 长垣县| 陆川县| 盐山县| 类乌齐县| 汽车| 巴彦县| 连南| 宝鸡市| 永新县| 芦山县| 馆陶县| 屏东市| 汤原县| 和林格尔县| 桐柏县| 突泉县| 苍山县| 万载县| 修水县| 普兰县| 湘阴县| 大荔县| 松溪县| 清涧县|