Archive

Como asegurar que tus conexiones a MySQL serán UTF-8

Le batallé un rato con esto y decidí publicarlo.

Los weyes de MySQL/Oracle cambian esto cada mes (no es cierto). Estos son los pasos a seguir para hacer todas tus conexiones UTF-8 con MySQL.

Si eres dueño del servidor (y recuerdas el password de root), solo agrega lo siguiente en /etc/my.cnf; debajo de [mysqld]:

<code># Set default charset to UTF-8

character_set_client=utf8

character_set_server=utf8

collation_server=utf8_unicode_ci

default-character-set=utf8

skip-character-set-client-handshake</code>

Así, no tendrás que usar SET NAMES 'utf8'; antes de cada conexión.

Si no lo eres, simplemente agrega:

<code>SET NAMES 'utf8';</code>

ó

<code>charset 'utf8';</code>

Además, otra solución (según los comments en el manual): en tu .htaccess, puedes agregar:

<code>AddDefaultCharset UTF-8</code>

Para ver tus variables, intenta esta query como usuario root (en mysql)

<code>SHOW VARIABLES LIKE 'character_set%';

SHOW VARIABLES LIKE 'collation%';</code>