jueves, 1 de marzo de 2012

Mysql - Problema caracteres especiales en conexión Mysql

Algunas veces, la verdad no se porque la razón, pero ha pasado, todo funciona perfectamente (acentos, ñ, etc), pero en el momento de realizar una conexión a una base de datos (al menos a Mysql) y estos datos son mostrados, se producen problemas y estos caracteres no son mostrados y nos aparece un rombo con un signo de interrogación. Para resolver el problema debemos hacer lo siguiente:


En primer lugar debemos revisar en el head de nuestro archivo php este lo siguiente:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Quedando algo parecido a esto:
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
Verificando que esté de esta forma, debemos ingresar un header, el header es el siguiente:
header("Content-Type: text/html;charset=utf-8");
Por ejemplo lo podemos dejar de la siguiente forma:
<?php header("Content-Type: text/html;charset=utf-8"); ?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
    </body>
</html>
Finalmente, al crear la conexión Php, debemos agregar:
mysql_query("SET NAMES 'utf8'");
Quedando algo parecido a esto:
mysql_connect('localhost', 'nombreuser','pass')or die (exit(mysql_error()));
mysql_select_db('nombredb');
mysql_query("SET NAMES 'utf8'");

0 comentarios:

Publicar un comentario