PHP

Manejar objetos JSON con acentos en PHP

16/May/2013

Si estas creando objetos JSON en PHP es posible que te encuentres ante la necesidad de manejar objetos JSON con acentos. En estos casos hay que realizar una serie de manipulaciones sobre dichos textos para poder manejar objetos JSON con acentos en PHP de la forma correcta.

Y es que después de realizar el siguiente código:

$objeto = new stdClass();
$objeto->texto = "Víctor";
$json = json_encode($objeto);
echo $json;

Te encuentres con la desagradable sorpresa de que el resultado del objeto JSON contenga un null.

{"texto":null}

Es por ello que tenemos que saber como manejar objetos JSON con acentos en PHP. El truco está en convertir los textos que necesitemos en UTF8. Esto lo podemos hacer de dos formas. La primera forma es que todo el sistema en el que trabajemos funcione en UTF8 en su totalidad, por lo cual las cadenas ya son UTF8.

La segunda forma es convertir la cadena que estemos utilizando en UTF8. Y es que la función json_encode está esperando un parámetro que sea puramente UF8.

Para convertir el texto en UTF8 utilizamos la función utf8_encode pasándola la cadena como parámetro.

$objeto->texto = utf8_encode("Víctor");

Una vez que hemos manipulado el objeto JSON con acentos en PHP obtendremos la siguiente respuesta:

{"texto":"V\u0092ctor"}
Suscribir
Notificar de
guest
20 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios