自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java解析php函數(shù)json_encode unicode的編碼問題

開發(fā) 后端
這篇文章主要介紹了java解析php函數(shù)json_encode unicode 編碼問題,需要的朋友可以參考下。

這篇文章主要介紹了java解析php函數(shù)json_encode unicode 編碼問題,需要的朋友可以參考下。

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進(jìn)行編碼后返回的,在客戶端通過java.net.URLdecoder.decode()解碼不管用,但是直接將以上字符串復(fù)制到decode()方法中可以正常解碼,把接收到的字符串經(jīng)過utf-8編碼后不管用,***在網(wǎng)上搜索相關(guān)資料找到解決方法。

一、json_encode作用:

json_encode — 對變量進(jìn)行 JSON 編碼。

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

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

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

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

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

***種方法

 

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

 

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

2. 使用 json_simple.jar 包解析

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

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

 

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

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

 

 

 

 

  1. <html> 
  2. <head><meta http-equiv="content-type" content="text/html;charset=utf-8"> 
  3. <title>php生成 json 中文</title> 
  4. <?php  
  5.   
  6. function arrayRecursive(&$array, $function, $apply_to_keys_also = false)  
  7. {  
  8.  static $recursive_counter = 0;  
  9.   
  10.  if (++$recursive_counter > 1000)  
  11.  {  
  12.    die('possible deep recursion attack');  
  13.  }  
  14.   
  15.  foreach ($array as $key => $value)  
  16.  {  
  17.   
  18.   if (is_array($value))  
  19.   {  
  20.    //arrayRecursive($array[$key], $function, $apply_to_keys_also);  
  21.   }  
  22.   else 
  23.   {  
  24.    $array[$key] = $function($value); 
  25.   }  
  26.   
  27.   if ($apply_to_keys_also && is_string($key))  
  28.   {  
  29.    $new_key = $function($key);  
  30.   
  31.    if ($new_key != $key)  
  32.    {  
  33.     $array[$new_key] = $array[$key];  
  34.     unset($array[$key]);  
  35.    }  
  36.   }  
  37.  } 
  38.  $recursive_counter--;  
  39. }  
  40.   
  41. function JSON($array)  
  42. {  
  43.  //arrayRecursive($array, 'urlencode', true);  
  44.  //print_r($array); 
  45.  $json = json_encode($array);  
  46.  return urldecode($json);  
  47. }  
  48.   
  49. $arrayarray = array 
  50.   (  
  51.    'Name'=>urlencode('php生成 json 中文'),  
  52.    'Age'=>20  
  53.   );  
  54.   
  55. echo JSON($array); 
  56. echo '</br>'; 
  57. echo urlencode('php生成 json 中文'); 
  58.   
  59. ?>  
  60. </body> 
  61. </html> 

 

責(zé)任編輯:趙寧寧 來源: 腳本之家
相關(guān)推薦

2009-12-04 14:29:09

PHP json_en

2010-01-05 13:54:32

Jquery Json

2019-01-07 15:42:00

JavaScript前端 編碼

2010-03-24 11:37:22

Python unic

2022-03-28 07:43:28

jsonHive數(shù)據(jù)庫

2010-07-21 10:25:50

Perl

2009-02-10 10:57:09

危險函數(shù)PHPCLI

2010-07-23 15:59:33

Perl encode

2009-11-30 16:08:32

PHP addslas

2009-12-04 13:54:11

PHP JSON互轉(zhuǎn)函

2022-03-31 07:32:33

Hivejson解析函數(shù)

2009-12-10 17:09:42

PHP編碼轉(zhuǎn)換函數(shù)

2021-04-11 10:19:45

Python編碼Unicode萬國碼

2009-08-03 17:22:15

JSON解析

2010-01-06 14:24:40

Javascript解

2010-05-11 18:14:52

Mysql數(shù)據(jù)庫編碼

2009-11-26 14:38:08

PHP函數(shù)echo()

2009-12-01 12:50:21

PHP字符處理函數(shù)

2025-02-13 07:49:49

2009-11-25 17:54:47

PHP數(shù)組函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號