Problemas UTF-8, JSON y Symfony

Obteniendo un objeto JSON con Ajax, me envía el siguiente error:

An exception has been thrown during the rendering of a template
("Warning: json_encode(): Invalid UTF-8 sequence in argument") in
"TwigBundle:Exception:exception.json.twig" at line 1.

Estuve investigando y es por la codificación del objeto JSON no es la misma que el objeto rescatado de la BD, que envío en el método setData($objeto) de la clase JsonResponse. El problema es que las 'ñ' y los tildes no los reconoce.

Si alguien me puede ayudar, por favor.

Respuestas

#1

Lo primero que no entiendo es el mensaje de error. Parece que el problema se produce en la propia plantilla de error. En otras palabras: en tu aplicación Symfony se produce un error y al ir a generar la pantalla que lo muestra, entonces se genera un error nuevo. ¿Esto es así?

Por otra parte, no entiendo tampoco el problema con el método setData(). Ese método sí que soporta los caracteres UTF-8. ¿Puede estar el problema en que la base de datos no es UTF-8? Si es así, puedes usar la función utf8_encode() de PHP para codificar a UTF8 los contenidos antes de pasarlos a setData().

#2

Buenos días,

No se si viene al caso, pero a mi me devolvía un error al pasar una variable JSON a la plantilla TWIG, no recuerdo la nomenclatura del error, pero recuerdo que lo decía era que no entendía bien lo que se le estaba pasando, use la función RAW y todo solucionado.

{{ AgendaJSON|raw }}

Saludos.