Fork me on GitHub

Miquel Camps Orteza

Soy programador web. Estoy especializado en desarrollo web (php, js). Estoy aprendiendo a desarrollar apps para iphone/ipad.
Organizo betabeers en Madrid.
Sobre mí     Metas     Hacks     Contactar     LinkedIn     Twitter    
Inicio

Problemas de codificación con JSON y la base de datos

Resulta que hoy en el curro tenía un problema con las tildes a la hora de recuperar una cadena formateada en JSON almacenada en la base de datos, al obtener la cadena y descodificarla con json_decode, las tildes no se mostraban, ejemplo:

Resultado de una array asociativo codificado con json_encode:

$str_json = json_encode( array( ‘Sal_nombre’ => ‘Conciertos Radio 3 Grabación’ ) );
$str_json = ‘{“Sal_nombre”:”Conciertos Radio 3 Grabaci\u00f3n”}’

Resultado al descodificar:

$obj_json = json_decode( $str_json );
$obj_json->Sal_nombre = ‘Conciertos Radio 3 Grabaciu00f3n’;

La solución:

Pedir HALLUDA URGENTE a mi compañero de batallas Hermann

La solución fue fácil (para Hermann jeje) tan solo tenía que pasar un mysql_escape_string a la cadena codificada antes de hacer el update a la base de datos:

$str_json = mysql_escape_string( json_encode( $str_json ) );
$str_json = ‘{\”Sal_nombre\”:\”Conciertos Radio 3 Grabaci\\u00f3n\”}’;
// ya se puede hacer update

Para recuperar de nuevo el valor de la cadena codificada:

$obj_json = json_decode( stripslashes( $str_json ) );
$obj_json->Sal_nombre = ‘Conciertos Radio 3 Grabación’;

Nota del programador:

Es imprescindible hacer un stripslashes antes de json_decode o la cadena no se podrá descodificar correctamente.

Dedico el post a:

Hermann Kässer por ayudarme con este problema y en muchos más y también a Laura Jerónimo que me dijo que echaba en falta artículos de php.

P.D. si buscan más articulos php, les recomiendo que se pasen por el blog de Daniel García de minube.com

diciembre 11, 2008
Sigueme en twitter Suscribete por RSS Suscribete por email
Temas relacionados
Deja un comentario







Comentarios
  1. Omar

    Espero que eso de HALLUDA haya sido una broma o algo¡


  2. Nicolás

    @Omar: Estaba pensando lo mismo :p


  3. alejandronf

    me ha dolido los ojos al leer eso de HALLUDA y no he podido seguir leyendo el articulo.
    Saludos


  4. Arley

    Muchas gracias, en serio sirvio demasiado este post, llevaba horas intentando comprender pq mi Json Decode no funcaba….. de ahora en adelante en nombre tuyo seguire pidiendo halluda como lo haces tu…


  5. rgchea

    hey gracias!!! me funcionó


  6. Luis Guillermo Trejo López

    Hola Miguel, de antemano gracias por el post (no me fue útil, más veo que a otros les ha servido), a pesar de intentar lo aquí explicado mi problema no se solucionó, más dejo un link que realmente me fue útil, por si a alguno le sucede lo mismo que a mi:

    http://www.forosdelweb.com/f18/problema-con-json_encode-con-caracteres-especiales-664631/