cakephp codificacion en utf8

Cuando tenéis una aplicación en cakephp y todo está en utf8 es muy importante especificar en la configuración de base de datos que se conecte en utf8 porque en cakephp se pueden generar problemas de codificación a pesar de que todo esté en utf8 (mysql, apache, php, código y html).

Para ello hay que añadir la siguiente línea en nuestra configuración de bases de datos
/app/config/database.php

'encoding' => 'utf8'

un ejemplo completo estableciendo la codificación en utf8

var $local = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => '',
        'database' => 'cake',
        'prefix' => '',
        'encoding' => 'utf8'
    );

Esto no es un milagro, si hay problemas graves de codificación en una aplicación en cakephp hay que revisar primero todos los elementos que pueden estar generando la inestabilidad en la codificación. Hay muchos elementos a tener en cuenta para que una web esté toda en utf8, como he dicho antes.

¿Quieres saber más sobre problemas de codificación utf 8? Para los que quieran saber más sobre problemas de codificacion web con php, mysql, etc.. he escrito un análisis y resolución sobre este problema en el siguiente artículo: Problemas codificacion web. Configurar codificación utf8 php, mysql y html

8 opiniones en “cakephp codificacion en utf8”

  1. ¡Gracias Pedro! Lo del encoding utf8 era la pieza que me faltaba, no entendía qué había hecho mal…

    Enhorabuena por el blog, muy útil para los que empezamos con CakePHP 🙂

  2. Pues yo llevo 3 meses trabajando con Cake y aún no he podido configurar la codificación correctamente, toque lo que toque siempre hay algo que me falla. Estoy trabajando con iso-8859-1 y con la BD en utf-8 utilizando las funciones utf8_decode y utf8_encode, lo cuál es un coñazo. Lo mismo se me pasa algo, pero yo toco los ficheros: core.php, database.php, los layouts q tenga y la codificación en xamp (php.ini) y lo más q consigo ver son simbolos de interrogación…Si alguien me puede echar una mano le estaría muy agradecido

    un saludo

      1. Muy bueno el artículo, de veras, pero he intentado realizar cambios con los proyectos en los que estoy trabajando ahora y nada. No es la base de datos, es algo del servidor o de los archivos en sí, por que al cambiar la codificación directamente el html se ve mal, por ejemplo: Córdoba => C?rdoba. Todo lo que genero con Javascript y tiene tildes no aparece, pero lo de la BD se ve todo bien. Una cosa que creo que me influye negativamente es que trabajo sobre windows y la codificación de archivos es en iso, igual q la configuración de xampp. Creo q voy a configurar una máquina virtual con linux a ver que ocurre. También comentar que jamas había tenido este tipo de problemas antes de usar CakePHP.

        Un saludo y gracias

      2. SOLUCIONADO!!!!!
        3 meses cambiando de todo y calentandome la cabeza, mirando miles de foros y era tan simple como cambiar la codificación del archivo. Ahora tengo que ver como generar inicialmente todos los archivos en UTF-8, ya que utilizo bake para crear el proyecto inicial, pero x fin sé cuál es el problema.
        Lo único que he hecho ha sido abrir el fichero de vista con un bloc de notas y en “guardar como” he cambiado ANSI por UTF-8.

        Un saludo y mil gracias de nuevo

        1. me alegro!
          Como comento en el articulo que te dije, también digo que es muy importante en la codificación que se guardan los ficheros. Si usas windows ten cuidado porque detecta la codificación por defecto del SO que es iso.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *