In der Android-Entwicklung traten Codierungsprobleme bei der Verbindung mit der serverseitigen Schnittstelle auf. Die vom Server erhaltenen Daten sind "/U8BBE/U59071ID-/U8BBE/U59071/U540D/U79F0;/U8BBE/U59073ID-/U8BBE/U59073/U540D/U79F0;/U8BBE/U59077777777777777777777777777777777777. Die Schnittstelle wird nach der Codierung und Codierung durch JSON_Encode in der PHP -Funktion zurückgegeben. Es funktioniert nicht auf der Dekodierung des Kunden über java.net.urdecoder.decode (), kann jedoch normal dekodiert werden, indem die obige Zeichenfolge in die Decodes () -Methode kopiert wird. Die empfangene Zeichenfolge wird von UTF-8 codiert und funktioniert nicht. Suchen Sie schließlich online nach relevanten Informationen, um eine Lösung zu finden.
1. JSON_Encode -Funktion:
JSON_ENCODE - JSON -Codierung von Variablen.
Beschreibung: String json_encode ($ value), gibt die JSON -Form des Wertwerts zurück.
Parameter: Der zu codierende Wert kann ein beliebiger Datentyp sein, mit Ausnahme des Ressourcentyps
Diese Funktion kann nur UTF-8-codierte Daten akzeptieren (Übersetzung Hinweis: Bezieht sich auf Daten des Zeichen-/String-Typs).
Rückgabewert: Wenn die Codierung erfolgreich ist, wird eine in JSON dargestellte Zeichenfolge zurückgegeben.
2. Der Kunde decodiert in Java:
Die erste Methode
public String unescapeunicode (String str) {StringBuffer b = new StringBuffer (); Matcher m = must..comPile ("//// u ([0-9a-fa-F] {4})"). Matcher (str); while (m.find ()) b.append ((char) Integer.ParseInt (M.group (1), 16)); return b.toString (); }Verwenden Sie einfach die methode unscapeunicode (), um sie direkt zu dekodieren.
2. Verwenden Sie JSON_Simple.jar -Paket zum Analysen
Laden Sie die Adresse: //www.vevb.com/softs/455885.html herunter
JSON.Simple ist eine einfache Bibliothek der Java -Klasse zum Parsen und Generieren von JSON -Text. Es hängt nicht von anderen Bibliotheken ab und hat eine hohe Leistung.
Objekt obj = jsonValue.Parse (j 2n); return obj.toString ();
PHP Server-Seite-Lösung:
<html> <kopf> <meta http-äquiv = "content-type" content = "text/html; charset = utf-8"> <title> php erzeugen json chinesische </title> <? php function arrayRecursive (& $ Array, $ $ applyto_Keys_Also = false) {static $ $ recursive_Coung_to. if (++ $ recursive_counter> 1000) {Die ('mögliche tiefe Rekursionsangriff'); } foreach ($ array as $ key => $ value) {if (is_array ($ value)) {// ArrayRecursive ($ array [$ key], $ function, $ anwenden_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]; nicht fest ($ array [$ key]); }} $ rekursiv_counter--; } function json ($ array) {// ArrayRecursive ($ array, 'urlencode', true); // print_r ($ array); $ json = json_encode ($ array); return urldecode ($ json); } $ array = array ('name' => urlencode ('PHP generiert JSON Chinese'), 'Age' => 20); Echo Json ($ Array); echo '</br>'; echo urlencode ('PHP generiert JSON Chinese'); ?> </body> </html>