Informática, Música, Fotografía, Tecnología, Viajes, Vida...
[PHP y MySQL] Codificación de carácteres, evitar problemas de codificación
[PHP y MySQL] Codificación de carácteres, evitar problemas de codificación

[PHP y MySQL] Codificación de carácteres, evitar problemas de codificación

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

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)
Pon en el de todos los archivos HTML:
Y en los puramente PHP (que muestran XML, llamadas de AJAX, APIs…) pon el código: header(«Content-Type: text/html;charset=utf-8»);
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)
Quita el DefaultCharset del Apache o modifícalo
Como última y desesperada opción, quita todos los htmlentities();

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

About the author

admin Senior Web Developer and Musician FranzNB

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *