Java解析php函數(shù)json_encodeunicode編碼問題的示例分析

這篇文章將為大家詳細講解有關(guān)Java解析php函數(shù)json_encode unicode編碼問題的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站科技有限公司專業(yè)互聯(lián)網(wǎng)基礎(chǔ)服務(wù)商,為您提供四川綿陽服務(wù)器托管高防物理服務(wù)器租用,成都IDC機房托管,成都主機托管等互聯(lián)網(wǎng)服務(wù)。

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

一、json_encode作用:

json_encode — 對變量進行 JSON 編碼。

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

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

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

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

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

***種方法

public String unescapeUnicode(String str){   StringBuffer b=new StringBuffer();   Matcher m = Pattern.compile("\\\\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 包解析

下載地址:http://www.jb51.net/softs/455885.html

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

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

三、PHP服務(wù)器端解決方法:

<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);  }    $arrayarray = array   (     'Name'=>urlencode('php生成 json 中文'),     'Age'=>20    );    echo JSON($array); echo '</br>'; echo urlencode('php生成 json 中文');   ?>  </body> </html>

關(guān)于“Java解析php函數(shù)json_encode unicode編碼問題的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

名稱欄目:Java解析php函數(shù)json_encodeunicode編碼問題的示例分析
分享URL:http://muchs.cn/article20/gecojo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、微信小程序、服務(wù)器托管營銷型網(wǎng)站建設(shè)、虛擬主機、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)