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%';

Comparte y disfruta:
  • Print
  • Digg
  • Google Bookmarks
  • FriendFeed
  • Identi.ca
  • LinkedIn
  • NewsVine
  • Reddit
  • Technorati
  • email
  • Slashdot
  • Add to favorites
  • del.icio.us
  • RSS
  • StumbleUpon

Tags: , , ,

Leave a Reply