JSON codificar acentos (no NULL)

5,762 views
Skip to first unread message

Víctor García

unread,
Oct 9, 2012, 7:08:02 PM10/9/12
to desarrollad...@googlegroups.com
Muy buenas, llevo algún tiempo dandole vueltas a un problema y con suerte a alguno de uds. le ha pasado ya:

Tengo una interfaz en JSON que leo desde mi aplicación en android, pero los acentos no es que se me pongan a null, eso lo sulocioné, sino que se me muestran como "Viña" y no hay forma... he cambiado el header del php, he cambiado el encode del InputStreamer... y nada. como mucho consigo que me vuelva a dar null.

¿Alguna sugerencia?

Algo de código por aquí:

El php:

header("Content-Type: text/html; charset=latin1");
header('Content-type: application/json');
$q=mysql_query("SELECT * FROM sect");
while($rs=mysql_fetch_assoc($q))
            $output[]=$rs;
 
    print (json_encode($output));


En Android:

httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(sectores));
response = httpclient.execute(httppost);
                entity = response.getEntity();
               
                is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"ISO-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                String line = null;

                while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                        Log.d("json_encoding",line);
                }
                is.close();
        
                result=sb.toString();
                try {
                    jArray = new JSONArray(result);
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    Log.e("err_JSON", "Error en JSON: "+e.toString());
                }

Ing. Marco Antonio Salgado

unread,
Oct 9, 2012, 8:48:55 PM10/9/12
to desarrollad...@googlegroups.com

ya le diste un vistazo a esta liga??..

http://developer.android.com/reference/java/net/URLDecoder.html

--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/AmNsS
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para ver este debate en la Web, visita https://groups.google.com/d/msg/desarrolladores-android/-/v9C1p2MztaQJ.
 
 

Gilberto Cuba Ricardo

unread,
Oct 10, 2012, 6:22:18 PM10/10/12
to desarrollad...@googlegroups.com
En una revisión rápida no parece que haya nada fuera de lugar. Por lo
que te está saliendo en el JSON, me suena que el problema está en el
código de php que te está entregando el JSON.
Fíjate si la información en la base de datos está correcta, y en caso
afirmativo, pues me quitara el primer header para probar, y si me
embullo el otro.

Si sigues trabado acá te dejo unos enlaces que tal vez te puedan
ayudar, que en mis tiempo me fueron últiles.

http://www.androidhive.info/2012/01/android-json-parsing-tutorial/
http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/
http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/

De todas formas, si el problema persiste, háznoslo saber de cómo va y
ya veremos. ;)


El 09/10/12, Ing. Marco Antonio Salgado <ing....@gmail.com> escribió:
--
Saludos,
Gilberto Cuba

---
Excess: un lenguaje para generarlos a todos
http://codexcess.com/

Darry Castro

unread,
Oct 12, 2012, 12:08:41 AM10/12/12
to desarrollad...@googlegroups.com

Darry Castro

Buenas noches,

He realizado mi primera aplicacion en Flash cc5, porque con el java me a costado un poco, por esta via la he encontrado un pelo mas facil,

https://play.google.com/store/apps/details?id=air.mysql1&feature=search_result#?t=W251bGwsMSwxLDEsImFpci5teXNxbDEiXQ..

esa es mi aplicación, espero sus comentarios o criticas, de verdad soy nuevo en esto,

Utilizo conexión con Mysql solo lectura.
Utilice, lo mas compacto en imágenes y sistema para que solo pese 250kb,

Gracias de antemano.






Saludos cordiales.
Ing. Darry Marlon Castro Capovich
Account Manager.
MCP Microsoft.
Web site. http://www.aripagua.com

Este mensaje está destinado a las personas o entidades a quienes está dirigido y contiene información confidencial o privilegiada. Si ha recibido este mensaje y no está dirigido a usted, no podrá hacer uso del mismo, ni copiarlo o distribuirlo. Le rogamos se sirva notificarnos utilizando Reply Mail y borrar este mensaje, en caso que lo haya recibido por error. Gracias


Silvia Izquierdo

unread,
Apr 11, 2014, 2:49:13 PM4/11/14
to desarrollad...@googlegroups.com
Hola a todos!

Estoy teniendo el mismo problema que comentáis por aquí. Al principio el php me devolvía null cuando tenía acentos pero ya lo tengo solucionado y devuelve los datos correctamente. He probado el código que habéis utilizado más la modificación de:

BufferedReader reader = new BufferedReader(new InputStreamReader(inputstream, "UTF-8")); 

Sin embargo, no me funciona y ya no sé si puede ser por porque exista algún problema con la versión de Android 4.x como pasaba al parsear JSON en general o si tuviera algo que ver el php aunque devolviera los datos correctamente. También he probado todo lo que he encontrado por Internet pero no me funciona nada. 

Muchas gracias de antemano!

Silvia



El martes, 22 de enero de 2013 03:08:08 UTC+1, Edwin Di Sante escribió:
Hola! yo tenía el mismo problema y solucioné el asunto de los acentos y caracteres especiales de la siguiente forma:

En el PHP use la función utf8_encode() para codificar las cadenas como UTF-8 antes de proceder a hacer el echo json_encode().

Ejem:
...
$response["user"]["nombre"] = utf8_encode($result["nombre"]);
...
echo json_encode($response);

En Android lo recibes como:
...
BufferedReader reader = new BufferedReader(new InputStreamReader(inputstream, "UTF-8"));   //ó  como "ISO-8859-1"
...

yo lo probé de ambas formas y no tuve problemas en leer acentos y otros caracteres, el problema sucede al enviar las cadenas sin la codificación en el JSON las envía como null.

Saludos.
 

Jesus Requena

unread,
May 22, 2014, 4:05:18 AM5/22/14
to desarrollad...@googlegroups.com
Puff muchísimas gracias me ha funcionado perfecto. llevaba un par de días bloqueado con esto. 
Reply all
Reply to author
Forward
0 new messages