jueves, 4 de agosto de 2011

PHP y MySQL . Los caracteres á é í ó ú Á É Í Ó Ú se muestran como á é í ó ú Á É Í Ó Ú

Como programador te habrá pasado que al escribir en un formulario la letra á, esta queda guardada en MySQL como á .
Seguramente tomaste los siguientes recaudos:

- Las páginas html generadas por PHP tienen el encabezado
< meta equiv="content-type" content="text/html;charset=utf-8" >


- La tabla en MySQL tiene el campo
character_set_client = utf8


Con todo, la letra á sigue guardándose como á, aunque en la página generada se vea bien.

La solución a este odioso problema es muy simple, como indica http://www.papascott.de/archives/2007/05/05/corrupted-utf-8-characters-with-php-and-mysql/ :

- Inmediatamente después de cualquier conexión hecha con "mysql_connect", hay que agregar la instrucción
mysql_query("SET NAMES 'utf8'")

Ahora sí, los datos serán guardados en MySQL en correcto utf-8 .