Dans le développement d'Android, des problèmes d'encodage se sont produits lors de la connexion avec l'interface côté serveur. Les données obtenues à partir du serveur sont "/ u8bbe / u59071id- / u8bbe / u59071 / u540d / u79f0; / u8bbe / u59073id- / u8bbe / u59073 / u540d / u79f0; / u8bbe / u59077id- / u8bbe / u59077 / u590d- / u8bbe / u59077 / u590d- / u8bbe / u59077 / u590d- / u8bbe / u59077 / u590d- / u8bbe / u59077 / u590d- / u8bbe / u59077 / u590d- / u8bbe / u59077 / u590d- / u8bbe / u59077 / u590D L'interface est renvoyée après le codage puis le codage via JSON_ENCOD dans la fonction PHP. Il ne fonctionne pas sur le décodage du client via java.net.urldecoder.decode (), mais il peut être décodé normalement en copiant la chaîne ci-dessus dans la méthode decode (). La chaîne reçue est codée par UTF-8 et ne fonctionne pas. Enfin, recherchez des informations pertinentes en ligne pour trouver une solution.
1. Fonction JSON_Encode:
JSON_ENCODE - Encodage JSON des variables.
Description: String json_encode ($ value), renvoie le formulaire JSON de la valeur de valeur .
Paramètres: La valeur à coder peut être n'importe quel type de données à l'exception du type de ressource
Cette fonction ne peut accepter que les données codées UTF-8 (Remarque: Remarque: fait référence aux données du type de caractère / chaîne)
Valeur de retour: si le codage est réussi, une chaîne représentée dans JSON sera renvoyée.
2. Le client décode en Java:
La première méthode
public String UnescapeUnicode (String Str) {StringBuffer B = new StringBuffer (); Matcher m = motive.compile ("//// u ([0-9a-fa-f] {4})"). Matcher (str); tandis que (m.find ()) B.APPEND ((char) Integer.Parseint (M.Group (1), 16)); retour b.toString (); }Utilisez simplement la méthode UnescapeUnicode () pour la décoder directement.
2. Utilisez le package json_simple.jar pour analyser
Télécharger l'adresse: //www.vevb.com/softs/455885.html
JSON.Simple est une simple bibliothèque de classe Java pour analyser et générer du texte JSON. Il ne dépend pas des autres bibliothèques et a des performances élevées.
Objet obj = jsonvalue.parse (jsonstr); return obj.toString ();
Solution côté serveur PHP:
<html> <éadfride> <méta http-equiv = "tent-type" contenu = "text / html; charset = utf-8"> <ititle> php générer json chinois </title> <? php function arrayRecursive (& $ array, $ function, $ applat_to_keys_also = false) {static $ recursive_counter = 0; if (++ $ recursive_counter> 1000) {die ('possible une attaque de récursion profonde'); } foreach ($ array as $ key => $ value) {if (is_array ($ value)) {// arrayRecursive ($ array [$ key], $ function, $ applat_to_keys_also); } else {$ array [$ key] = $ function ($ value); } if ($ applat_to_keys_also && is_string ($ key)) {$ new_key = $ function ($ key); if ($ new_key! = $ key) {$ array [$ new_key] = $ array [$ key]; unset ($ array [$ key]); }} $ recursive_counter--; } fonction JSON ($ array) {// arrayRecursive ($ array, 'urlencode', true); // print_r ($ array); $ json = json_encode ($ array); return urlDecode ($ json); } $ array = array ('name' => urlencode ('php génère json chinois'), 'age' => 20); Echo JSON ($ Array); echo '</br>'; echo urlencode ('php génère JSON chinois'); ?> </ body> </html>