Páginas

18 de diciembre de 2011

Caracteres Especiales en PHP y Mysql

OK, he visto muchas veces sitios web "profesionales" con el problema de los mal llamados caracteres especiales que no son mostrados correctamente en pantalla. Me refiero a los tildes y la ñ por ejemplo.

Bueno, para resolver este problema he visto que algunas personas usan funciones de php para tratar estos caracteres, pero la verdad es que no es necesario, solo se deben hacer las configuraciones correspondientes. La respuesta es definir bien el cotejamiento de la base de datos, las tablas, las paginas web y a conexion a la bd.

para definir el cotejamiento en la BD, solo debes hacerlo al momento de crearla. en mi opinion deberían usar utf8_unicode_ci. pueden administrar sus bases de datos con el programa navicat que es mucho mas amigable que phpmyadmin y posee muchas mas funcionalidades.

Para definir el cotejamiento en cada fichero de tu sitio, debes incorporar esta linea dentro del <head> en el html. Si estas trabajando con dreamweaver, esto ya estará incorporado en todos tus archivos



y finalemente solo resta definir el cotejamiento de la comunicación con la base de datos, para ello, yo uso la siguiente linea en mi función para conectar con mysql

mysql_query ("SET NAMES 'utf8'");

La función quedaría así:
function conectar ()
{
global $conn;
$conn = mysql_connect("localhost", "user", "pass")
or die (mysql_error());
mysql_select_db("base_de_datos",$conn)
or die (mysql_error());
mysql_query ("SET NAMES 'utf8'");
}

Con esto no deberían tener problemas de caracteres mal impresos en pantalla.

3 comentarios:

Por favor deja tu comentario sobre este artículo