Ir al contenido

Manejar objetos JSON con acentos en PHP

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:

  1. Todo el sistema funcione en UTF8: Las cadenas ya son UTF8 en su totalidad
  2. Convertir la cadena a UTF8: Utilizar la función utf8_encode()

La función json_encode está esperando un parámetro que sea puramente UTF8. 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"}
Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Manejar objetos JSON con acentos en PHP

Aprende a manejar objetos JSON con acentos en PHP convirtiendo cadenas a UTF8 con utf8_encode() para evitar valores nulos en json_encode().

Descargar código