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

首頁 > 編程 > Java > 正文

java解析php函數json_encode unicode 編碼問題

2019-11-26 14:23:49
字體:
來源:轉載
供稿:網友

android開發中在和服務器端接口對接時出現編碼問題,從服務器端獲取到的數據是 "/u8bbe/u59071ID-/u8bbe/u59071/u540d/u79f0;/u8bbe/u59073id-/u8bbe/u59073/u540d/u79f0;/u8bbe/u59077id-/u8bbe/u59077/u540d/u79f0" 接口是通過php函數中json_encode進行編碼后返回的,在客戶端通過java.net.URLdecoder.decode()解碼不管用,但是直接將以上字符串復制到decode()方法中可以正常解碼,把接收到的字符串經過utf-8編碼后不管用,最后在網上搜索相關資料找到解決方法。

一,json_encode作用:

json_encode ― 對變量進行 JSON 編碼。

說明:string json_encode ($value ),返回 value 值的  JSON 形式。

參數:待編碼的 value ,除了resource 類型之外,可以為任何數據類型

        該函數只能接受 UTF-8 編碼的數據(譯注:指字符/字符串類型的數據)

返回值:編碼成功則返回一個以 JSON 形式表示的 string 。

二,客戶端用java語言解碼:

第一種方法

public String unescapeUnicode(String str){  StringBuffer b=new StringBuffer();  Matcher m = Pattern.compile("http:////u([0-9a-fA-F]{4})").matcher(str);  while(m.find())   b.append((char)Integer.parseInt(m.group(1),16));  return b.toString(); }

直接使用unescapeUnicode()方法解碼就可以了。

  2. 使用 json_simple.jar 包解析

  下載地址://m.survivalescaperooms.com/softs/455885.html

  JSON.simple是一個簡單的Java類庫,用于解析和生成JSON文本。不依賴于其它類庫,性能高。

Object obj=JSONValue.parse(jsonStr);return obj.toString();


 PHP服務器端解決方法:

<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><title>php生成 json 中文</title><?php  function arrayRecursive(&$array, $function, $apply_to_keys_also = false) {  static $recursive_counter = 0;   if (++$recursive_counter > 1000)  {    die('possible deep recursion attack');  }   foreach ($array as $key => $value)  {    if (is_array($value))   {    //arrayRecursive($array[$key], $function, $apply_to_keys_also);   }   else  {    $array[$key] = $function($value);  }    if ($apply_to_keys_also && is_string($key))   {    $new_key = $function($key);     if ($new_key != $key)    {     $array[$new_key] = $array[$key];     unset($array[$key]);    }   }  } $recursive_counter--; }  function JSON($array) {  //arrayRecursive($array, 'urlencode', true);  //print_r($array); $json = json_encode($array);  return urldecode($json); }  $array = array  (    'Name'=>urlencode('php生成 json 中文'),    'Age'=>20   );  echo JSON($array);echo '</br>';echo urlencode('php生成 json 中文'); ?> </body></html>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高雄市| 福泉市| 军事| 桐乡市| 新郑市| 天全县| 东安县| 中江县| 南阳市| 西贡区| 宁乡县| 峡江县| 高要市| 察哈| 巴彦县| 仙居县| 内乡县| 西林县| 慈利县| 翁源县| 华坪县| 扶沟县| 揭东县| 临桂县| 阳西县| 特克斯县| 灵台县| 游戏| 昭觉县| 什邡市| 安丘市| 延安市| 平远县| 乐平市| 全南县| 嵊州市| 冕宁县| 巫山县| 涞水县| 承德市| 崇礼县|