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

首頁 > 開發 > PHP > 正文

php中不轉義中文字符的 json 編碼方法

2024-05-04 21:57:16
字體:
來源:轉載
供稿:網友

雖說最新的 PHP 5.4 已經良好支持 JSON 中文編碼,即通過 JSON_UNESCAPED_UNICODE 參數,例如:

json_encode("中文", JSON_UNESCAPED_UNICODE)對于早前 PHP 版本,處理不轉義中文字符的 json 編碼

PHP 和 JavaScript 交互其實很方便,PHP 原生也提供了對 JSON 格式的支持。主要包括 JSON 編碼和解碼兩個函數:

json_endoce: http://cn.php.net/json_encode

json_dedoce: http://cn.php.net/json_decodejson_encode

對變量進行 JSON 編碼,并返回 value 值的 JSON 形式,例如如下:

  1. <?php 
  2. $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); 
  3. echo json_encode($arr); 
  4. ?> 

以上代碼執行后輸出:{"a":1,"b":2,"c":3,"d":4,"e":5}

假如要編碼的數據源(一般是一個數組),value 中包含中文,經過 json_encode 處理后輸出的是 unicode 編碼,代碼如下:

  1. <?php 
  2. $arr = array ('a'=>'芒果小站'); 
  3. echo json_encode($arr); 
  4. ?> 

以上代碼執行后輸出,代碼如下:

{"a":"u8292u679Cu5C0Fu7AD9"}

PHP 底層已經做了 unicode 處理,如果嫌它不夠直觀,可以利用 urlencode 和urldecode,方法繞過這個轉碼為 unicode 的過程,代碼如下:

$arr = array ('a'=>urlencode('芒果小站'));

echo urldecode(json_encode($arr));以上代碼執行后輸出:{"a":"芒果小站"}

這里分享個更完美的方法:

  1. /** 
  2.  * 不轉義中文字符的 json 編碼方法 
  3.  * @param array $arr 待編碼數組 
  4.  * @return string 
  5.  */ 
  6. function encode ($arr) { 
  7.  $str = json_encode($arr); 
  8.  $search = "#/u([0-9a-f]+)#ie"
  9.  $replace = "iconv('UCS-2', 'UTF-8', pack('H4', '/1'))"
  10.  return preg_replace($search$replace$str); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松桃| 交城县| 德格县| 英德市| 黎城县| 锦屏县| 白城市| 卓尼县| 乌海市| 五常市| 莒南县| 永州市| 寿光市| 芜湖市| 建湖县| 宜兰市| 龙里县| 昌平区| 府谷县| 开封市| 保亭| 江阴市| 钟山县| 青河县| 桐乡市| 南通市| 仁化县| 江川县| 香格里拉县| 堆龙德庆县| 临沭县| 白河县| 自治县| 溆浦县| 荣昌县| 延边| 武义县| 四平市| 上饶市| 彭泽县| 亳州市|