Inicio > Desarrollo Web, Java, JSP, PHP, Software Libre > Error con acentos y eÑes en PHP/MySQL (Solucionado)

Error con acentos y eÑes en PHP/MySQL (Solucionado)

Muchas veces al crear una web con PHP y MySQL, ocurre un problema al introducir y mostrar datos: estos se alteran acabando en áóñ y cosas parecidas. Cuando me pasa esto suelo empezar a toquetear cosas, cambiar charsets y traducir a ñ o á pero nada funciona. El problema es que la configuración del cotejamiento de los caracteres especiales como acentos, eñes y demás símbolos no es el mismo entre la base de datos (MySQL), el lenguaje de servidor (PHP) y el servidor (Apache).

Así que me puse a buscar y después de encontrar comentarios buenísimos de gente por los foros puedo hacer un resumen de todo lo necesario cuando nos ocurre un problema de estos (id haciendo y testeando si ya funciona todo bien paso a paso).
Guía paso a paso para solucionar el problema de los acentos y eñes

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 de todos los archivos HTML:

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′”);

(Para MySQLi escribe $acentos = $db->query(“SET NAMES ‘utf8′”); gracias Fernando)

5. Quita el DefaultCharset del Apache o modifícalo
6. Como última y desesperada opción, quita todos los htmlentities();

Haciendo estos pasos se solucionará cualquier problema de codificación de caracteres.

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: