No desenvolvimento do Android, ocorreram problemas de codificação ao se conectar com a interface do lado do servidor. Os dados obtidos do servidor são "/U8BBE/U59071ID-/U8BBE/U59071/U540D/U79F0;/U8BBE/U59073ID-/U8BBE/U59073/U540D/U790; U8BBE/U5907ID- A interface é retornada após a codificação e depois codificando através do JSON_ENCODE na função PHP. Ele não funciona na decodificação do cliente através de java.net.urldecoder.decode (), mas pode ser decodificado normalmente copiando a string acima no método decode (). A sequência recebida é codificada pelo UTF-8 e não funciona. Finalmente, pesquisando informações relevantes on -line para encontrar uma solução.
1. JSON_ENCODE FUNÇÃO:
JSON_ENCODE - codificação JSON de variáveis.
Descrição: String json_encode ($ valor), retorna o formulário JSON do valor do valor .
Parâmetros: o valor a ser codificado pode ser qualquer tipo de dados, exceto para o tipo de recurso
Esta função pode aceitar apenas dados codificados UTF-8 (tradução Nota: refere-se a dados do tipo de caractere/string)
Valor de retorno: se a codificação for bem -sucedida, uma sequência representada no JSON será devolvida.
2. O cliente decodifica em Java:
O primeiro método
public string unescapeunicode (string str) {stringbuffer b = new stringBuffer (); Matcher M = Pattern.compile ("//// u ([0-9a-fa-f] {4})"). Matcher (str); enquanto (m.find ()) b.append ((char) integer.parseint (m.group (1), 16)); retornar B.ToString (); }Basta usar o método unescapeunicode () para decodificá -lo diretamente.
2. Use pacote json_simple.jar para analisar
Endereço para download: //www.vevb.com/softs/455885.html
JSON.Simple é uma biblioteca de classes Java simples para analisar e gerar texto JSON. Não depende de outras bibliotecas e tem alto desempenho.
Objeto obj = jsonvalue.parse (jSonstr); retorna obj.toString ();
Solução do lado do servidor PHP:
<html> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> php gerar json chinês </title> <? if (++ $ recursive_counter> 1000) {die ('possível ataque de recursão profunda'); } foreach ($ Array como $ key => $ value) {if (is_array ($ value)) {// ArrayRecursive ($ Array [$ key], $ função, $ APPL_TO_KEYS_ALSO); } else {$ Array [$ key] = $ function ($ valor); } if ($ APPL_TO_KEYS_ALSO && IS_STRING ($ key)) {$ new_key = $ function ($ key); if ($ new_key! = $ key) {$ Array [$ new_key] = $ Array [$ key]; Unset ($ Array [$ key]); }} $ recursive_counter--; } função json ($ array) {// ArrayRecursive ($ Array, 'urlencode', true); // print_r ($ array); $ JSON = JSON_ENCODE ($ Array); retornar urldecode ($ json); } $ array = Array ('nome' => urlencode ('php gera json chinês'), 'idade' => 20); Echo JSON ($ Array); eco '</br>'; echo urlencode ('php gera json chinês'); ?> </body> </html>