Pregunta

Escribí una aplicación usando CakePHP. Configuré todo para usar la codificación UTF-8 (las tablas de la base de datos, la conexión de la base de datos en database.php, etc.), ahora me pregunto si debería codificar cada cadena de texto a UTF-8 (con utf8_encode) antes de enviarlo a la base de datos o no es necesario.

Gracias.

¿Fue útil?

Solución

Eso no es necesario.

Especificar la conexión de la base de datos con UTF8 manejará las complejidades para usted. (ver comentarios)

Otros consejos

Por favor eche un vistazo el manual para qué utf8_encode en realidad lo hace. Eso conversos ISO-8859-1 texto codificado al texto codificado UTF-8. Sí, es un nombre horrible para esta función. Si su texto no está codificado en ISO-8859-1, no necesita esta función. Si su texto ya está en UTF-8, no necesita esta función. En resumen, si establece todo para ser UTF-8 desde el principio de todos modos, ya es UTF-8 y no necesita hacer nada más.

Debería ser el problema de conectar PHP con la base de datos MySQL. Puede intentar solucionar esto asegurándose de que su servidor de base de datos use conexiones de codificación UTF-8 de forma predeterminada.

Puede obligar a su aplicación CakePHP a conectarse a MySQL con la codificación UTF8 especificando la opción de codificación en elapp/config/database.php:

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

También puede obligar a MySQL a usar UTF8 con una consulta:

Establecer nombres 'UTF8'

Avísame si puedes resolver el problema. Gracias

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top