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]:

# 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

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

Si no lo eres, simplemente agrega:

SET NAMES 'utf8';
charset 'utf8';

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

AddDefaultCharset UTF-8

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

SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';