En el desarrollo de Android, se produjeron problemas de codificación al conectarse con la interfaz del lado del servidor. Los datos obtenidos del servidor son "/U8BBE/U59071ID-/U8BBE/U59071/U540D/U79F0;/U8BBE/U59073ID-/U8BBE/U59073/U540D/U79F0;/U8BBE/U59077ID-/U8BBE/U59077/U79F0;/U8BBE/U59077ID-/U8BBE/U59077/U540; La interfaz se devuelve después de codificar y luego codificar a través de JSON_ENCODE en la función PHP. No funciona en la decodificación del cliente a través de java.net.urldecoder.decode (), pero se puede decodificar normalmente copiando la cadena anterior en el método decode (). La cadena recibida está codificada por UTF-8 y no funciona. Finalmente, buscando información relevante en línea para encontrar una solución.
1. Función JSON_ENCODE:
JSON_ENCODE - JSON Codificación de variables.
Descripción: cadena JSON_ENCODE ($ valor), devuelve el formulario JSON del valor de valor .
Parámetros: el valor a codificar puede ser cualquier tipo de datos, excepto el tipo de recurso
Esta función solo puede aceptar datos codificados UTF-8 (Nota de traducción: se refiere a datos del tipo de carácter/cadena)
Valor de retorno: si la codificación es exitosa, se devolverá una cadena representada en JSON.
2. El cliente decodifica en Java:
El primer método
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 (); }Simplemente use el método Unescapeunicode () para decodificarlo directamente.
2. Use el paquete json_simple.jar para analizar
Descargar dirección: //www.vevb.com/softs/455885.html
JSON.Simple es una simple biblioteca de clase Java para analizar y generar texto JSON. No depende de otras bibliotecas y tiene un alto rendimiento.
Objeto obj = jsonValue.Parse (JSonstr); return obj.ToString ();
Solución del lado del servidor PHP:
<html> <fead> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> php generar json chino </title> <? Php function ArrayReCursive (& $ array, $ function, $ apply_to_keys_also = false) {statative $ recursive $ recursive = 0; if (++ $ recursive_counter> 1000) {die ('posible ataque de recursión profunda'); } foreach ($ array como $ key => $ value) {if (is_array ($ value)) {// arrayRecursive ($ array [$ key], $ function, $ apply_to_keys_also); } else {$ array [$ key] = $ function ($ value); } if ($ APLICACIÓN_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); devolver Urldecode ($ JSON); } $ array = array ('name' => urlencode ('php genera json chino'), 'edad' => 20); echo json ($ array); echo '</br>'; echo urlencode ('php genera json chino'); ?> </body> </html>