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

首頁 > 開發(fā) > PHP > 正文

php json_encode utf-8中文問題

2024-05-04 21:57:05
字體:
供稿:網(wǎng)友

以前碰到最多的是json_encode是gbk 編碼時出現(xiàn)亂碼,今天發(fā)現(xiàn)uft8也會出現(xiàn)中文亂碼了,下面我們一起看問題如何解決吧。

utf-8字符json_encode為變成轉(zhuǎn)成utf16編碼,也就是這個樣子,代碼如下:

  1. $ ./php/bin/php -r 'echo json_encode("中文");' 
  2. "u4e2du6587" 

可讀性降低,最新的php 5.4的json_encode支持了UTF-8編碼,可以把中文不編碼直接輸出,那低版本怎么辦呢?也有辦法,封裝成一個函數(shù)給大家分享一下,代碼如下:

  1. function my_json_encode($var) { 
  2.     return preg_replace("/u([a-f0-9]{4})/e""iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($var)); 

例,利用另一種辦法來解決,后臺PHP頁面(頁面編碼為UTF-8或者已經(jīng)把字符轉(zhuǎn)為UTF-8)使用json_encode將PHP中的array數(shù)組轉(zhuǎn)為JSON字符串,例如:

  1. <?php 
  2.   $testJSON=array('name'=>'中文字符串','value'=>'test'); 
  3.   echo json_encode($testJSON); 
  4. ?> 

查看輸出結(jié)果為:

{“name”:”u4e2du6587u5b57u7b26u4e32″,”value”:”test”}

可見即使用UTF8編碼的字符,使用json_encode也出現(xiàn)了中文亂碼。解決辦法是在使用json_encode之前把字符用函數(shù)urlencode()處理一下,然后再json_encode,輸出結(jié)果的時候在用函數(shù)urldecode()轉(zhuǎn)回來,具體如下:

  1. <?php 
  2.     $testJSON=array('name'=>'中文字符串','value'=>'m.survivalescaperooms.com''); 
  3.     //echo json_encode($testJSON); 
  4.     foreach ( $testJSON as $key => $value ) { 
  5.   $testJSON[$key] = urlencode ( $value ); 
  6.     } 
  7.     echo urldecode ( json_encode ( $testJSON ) ); 
  8. ?> 

查看輸出結(jié)果為:

{“name”:”中文字符串”,”value”:”www.111cn.net”}

到此,成功地輸出了中文字符.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东乡族自治县| 汉沽区| 岳阳县| 浏阳市| 定南县| 茶陵县| 临湘市| 若羌县| 手游| 芮城县| 宜兴市| 邳州市| 通江县| 云浮市| 安福县| 秦皇岛市| 宣武区| 宁德市| 临清市| 伽师县| 岳西县| 莫力| 巴马| 榆社县| 宜兴市| 铁岭市| 商河县| 鄂伦春自治旗| 宜阳县| 祁东县| 江川县| 马龙县| 潢川县| 明溪县| 财经| 隆尧县| 阳山县| 革吉县| 武川县| 泰来县| 霍州市|