viernes, 21 de diciembre de 2012

Ñ y acentos en php y mysql

El idioma puede ser un quebradero de cabeza no sólo a la hora de aprenderlo sino a la hora de trabajar con él. Todos los que hayáis creado páginas web entendereis de que os hablo y os sonará bastante la palabra cotejamiento. Y si ya trabajas con lenguajes de programación y bases de datos como por ejemplo php y mysql se puede volver una tortura el hecho de mostrar en tú página palabras con ñ o acentuadas sin que te aparezcan cosas como áóñ.
Yo he sido uno de esos a los que les ha pasado y que se ha vuelto loco probando una y mil soluciones de las que se muestran por internet, hasta el día que di con el blog de Xavi Esteve. En él encontré la solución a todos mis problemas con las ñ y acentos en php y mysql. Os trascribo tal cual lo que Xavi dice que hay que hacer porque a mi ha sido lo único que me ha funcionado al 100%.
  1. Al crear la base de datos MySQL, asegúrate que los campos string y demás esten en utf8_spanish_ci y el cotejamiento de las tablas en utf_unicode_ci (más tarde en Operations > Collation de phpMyAdmin se puede cambiar)
  2. Pon en el <head>de todos los archivos HTML:
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  3. Y en los puramente PHP (que muestran XML, llamadas de AJAX, APIs…) pon el código:
    header("Content-Type: text/html;charset=utf-8");
  4. Al crear la conexión de PHP con MySQL, envía esta consulta justo tras la conexión:
    mysql_query("SET NAMES 'utf8'");
Tras esto sólo me queda agradecer una vez más a Xavi Esteve esta gran aportación de la que os dejo el enlace
http://xaviesteve.com/354/acentos-y-enes-aparecen-mal-a%C2%B1-en-php-con-mysql-utf-8-iso-8859-1/