Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Problemas con caracteres especiales de bases de datos de mysql (http://www.forosdelweb.com/f18/problemas-con-caracteres-especiales-bases-datos-mysql-595355/)

haga41 10/06/2008 13:44

Problemas con caracteres especiales de bases de datos de mysql
 
Saludos a todos,

Estoy pasando un proyecto de ASP a PHP y hasta ahora no he tenido demasiados problemas, el caso es que al mostrar los datos de las bases de datos de mysql los acentos y las eñes se meustran con caracteres especiales.

Me paso algo parecido en ASP y la gente del foro de ASP me ayudó con la orden <%Response.CharSet = "utf-8"%>

Después configure todas las páginas del Dreamweaver en las preferencias el UTF-8 en nuevo documento para que me cogiese todo bien por defecto, mis paginas de PHP estan configuradas así pero los caracteres se ven mal.

Los campos son de tipo texto, aunque también tengo algunso de tipo varchar.

Agradecería mucho cualquier consejo.

jurena 10/06/2008 14:49

Respuesta: Problemas con caracteres especiales de bases de datos de mysql
 
En PHP escribes mysql_query ("SET NAMES 'utf8'") justo tras la conexión con la base de datos y antes de la consulta...

$link = mysql_connect ('localhost', 'root', 'tuclave');
if (!$link){
echo 'error al conectar';
die;
}
$bd = mysql_select_db('tubase');
if (!$bd){
echo 'error al seleccionar la base de datos';
die;
}
mysql_query ("SET NAMES 'utf8'"); //esto es lo importante

haga41 10/06/2008 15:18

Respuesta: Problemas con caracteres especiales de bases de datos de mysql
 
Hola jurena, gracias por tu consejo, he intentado aplicarlo al código que tengo y de momento sigue mostrando los caracteres especiales. Te lo muestro por si puedes ver donde está mi fallo ya que es algo diferente que el tuyo.

Este es el archivo php principal:

<?php

include ("includes/funciones.php");
$idcnx = conectar();
$sql = "SELECT id,titular,fecha FROM noticias ORDER by fecha ASC";
$res = mysql_query($sql) or die(mysql_error());
mysql_query ("SET NAMES 'utf8'");
echo "<ol>";
while($fila = mysql_fetch_array($res)){

$fecha = $fila['fecha'];

echo "<li><a class='menupruebas' href='pnoticia_detalle.php?id=" .$fila['id'] . "' >" . $fila['titular'] ."<span class='rojofondo'> (";
echo strftime("%d/%m/%Y", strtotime($fecha));
echo ")</span></li>";

}
?>
</ol>
<?
mysql_free_result($res);
mysql_close($idcnx);
?>

Y este es el archivo con la funcion conectar donde he intentado aplicar lo que me has dicho, el código es algo distinto al tuyo:

<?
function conectar(){
global $HOSTNAME,$USERNAME,$PASSWORD,$DATABASE;
$DATABASE = "motos";
$idcnx = mysql_connect($HOSTNAME, $USERNAME, $PASSWORD) or die(mysql_error());
mysql_select_db($DATABASE, $idcnx);
mysql_query ("SET NAMES 'utf8'");
return $idcnx;
}
?>

BrujoNic 10/06/2008 20:08

Respuesta: Problemas con caracteres especiales de bases de datos de mysql
 
Trasladado de BD a PHP. Favor no poner código de programación en BD.

Función de la sección de Base de Datos


La zona horaria es GMT -6. Ahora son las 12:34.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.