Foros del Web » Programando para Internet » PHP »

Me cambia letras con acento por: �

Estas en el tema de Me cambia letras con acento por: � en el foro de PHP en Foros del Web. Hola, alguien sabe como hacer para que una ves que consulto una tabla de MySQL, el texto devuelto por PHP no me cambie las letras ...
  #1 (permalink)  
Antiguo 09/11/2006, 09:18
Avatar de omar_cb11  
Fecha de Ingreso: septiembre-2005
Mensajes: 178
Antigüedad: 18 años, 7 meses
Puntos: 0
Me cambia letras con acento por: �

Hola, alguien sabe como hacer para que una ves que consulto una tabla de MySQL, el texto devuelto por PHP no me cambie las letras acentuadas por este caracter : "�". Muchas Gracias
__________________
A veces hay que darle un golpecito al Pc para que funcione.
  #2 (permalink)  
Antiguo 09/11/2006, 09:30
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

Pues php no te esta cambiando los acentos si no que al momento de almacenar la información en tu bd tu tabla tiene mal establecida la codificación. Yo lo que hago para evitarme este problema es aplicarle htmlentities() al texto que voy almacenar y ya cuando lo muestro uso html_entity_decode()

Espero que ayude este comentario.

Saludillos.
  #3 (permalink)  
Antiguo 09/11/2006, 09:55
Avatar de omar_cb11  
Fecha de Ingreso: septiembre-2005
Mensajes: 178
Antigüedad: 18 años, 7 meses
Puntos: 0
El problema que tengo es tambien que a la hora de hacer una consulta si esta tiene alguna letra acentuada no me encuentra nada, supongo por lo mismo me ha cambiado el caracter o algo asi, pero en la base de datos yo reviso y estan todas las letras bien con sus acentos y todo! como puedo realizar una consulta con palabras que tienen letras con acento?

Este es el codigo de la pagina que envía la consulta:
Código PHP:
<form name="formulario" action="">
<?php
require('../conexion.php');

$sql=mysql_query("SELECT DISTINCT tema FROM ensenanzas ORDER BY Tema");
?>
<select name="lista" onchange="pedirDatos()">
<?php
while($row mysql_fetch_array($sql)){    
echo 
"<option value=\"".$row['tema']."\">".$row['tema']."</option>";}
?>
</select>
</form>
y este es el codigo de la pagina que me hace la consulta:
Código PHP:
<?php
require('../conexion.php');

$nom=$_POST['nombres'];
$result=mysql_query("SELECT titulo,fecha,audio,video FROM ensenanzas WHERE tema='".$nom."' ORDER BY fecha");

echo 
"<table bgcolor=\"#FFE0B3\" align=left style=\"border:1px outset black\">";
        for (
$i 0$i mysql_num_fields($result); $i++){ 
            print 
"<th>".mysql_field_name($result$i)."</th>\n";} 
        while (
$registro mysql_fetch_row($result)){
            echo 
"<tr>";
        foreach(
$registro as $clave){
            echo 
"<td bgcolor=\"#D2E9FF\"style=\"border:1px groove black\" align=\"left\">",htmlentities($clave),"</td>";}}
            echo 
"</tr></table>";
            
mysql_close();
?>
__________________
A veces hay que darle un golpecito al Pc para que funcione.

Última edición por omar_cb11; 09/11/2006 a las 10:45
  #4 (permalink)  
Antiguo 09/11/2006, 11:11
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Pues entonces si se almacenan bien los datos, entonces el problema puede radicar en que la codificación del explorer o firefox no es "ISO".

Saludillos.
  #5 (permalink)  
Antiguo 09/11/2006, 11:18
Avatar de omar_cb11  
Fecha de Ingreso: septiembre-2005
Mensajes: 178
Antigüedad: 18 años, 7 meses
Puntos: 0
Lo que pasa es que no me muestra nada, hago la consulta y no me muestra resultados, me imagino yo que cuando hace la consulta por ejemplo donde tema="información", hace esto: tema="informaci�n" y por eso no me muestra resultados, bueno es lo que se me viene a la mente no se en realidad que puede ser
__________________
A veces hay que darle un golpecito al Pc para que funcione.
  #6 (permalink)  
Antiguo 09/11/2006, 11:31
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Entonces ya no me quedo claro...

1)¿En la base de datos se almacenan bien los datos? ¿No se guardan "rarezas" en vez de los acentos?

2) ¿Estas seguro que la busqueda se esta realizando adeucuadamente?

Saludillos.
  #7 (permalink)  
Antiguo 09/11/2006, 11:59
Avatar de omar_cb11  
Fecha de Ingreso: septiembre-2005
Mensajes: 178
Antigüedad: 18 años, 7 meses
Puntos: 0
Estoy seguro que en la base de datos se guardan bien los datos yo los veo con el phpmyadmin y los registros están con sus acentos y todo. Te explico:

Tengo un campo que se llama Tema y otro que se llama Titulo. Un Tema puede tener dos o mas Titulos, o sea que en 100 registros hay 100 Titulos pero solo 2 Temas (de esos 100 registros 50 titulos son de un tema y 50 del otro).

Por ejemplo un Tema es Auto y otro Avión. Cuando yo consulto por Auto me muestra todos los Titulos que corresponden al Tema Auto pero cuando busco por Avión como la ó esta acentuada no me muestra nada!, no se si me pude explicar bien.
__________________
A veces hay que darle un golpecito al Pc para que funcione.
  #8 (permalink)  
Antiguo 09/11/2006, 12:22
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Podrias postear el query que usas para realizar la busqueda porfavor.

Saludillos.
  #9 (permalink)  
Antiguo 09/11/2006, 13:56
Avatar de omar_cb11  
Fecha de Ingreso: septiembre-2005
Mensajes: 178
Antigüedad: 18 años, 7 meses
Puntos: 0
Este es el codigo de la pagina que envía la consulta:
Código PHP:
<form name="formulario" action="">
<?php
require('../conexion.php');

$sql=mysql_query("SELECT DISTINCT tema FROM ensenanzas ORDER BY Tema");
?>
<select name="lista" onchange="pedirDatos()">
<?php
while($row mysql_fetch_array($sql)){    
echo 
"<option value=\"".$row['tema']."\">".$row['tema']."</option>";}
?>
</select>
</form>
y este es el codigo de la pagina que me hace la consulta:
Código PHP:
<?php
require('../conexion.php');

$nom=$_POST['nombres'];
$result=mysql_query("SELECT titulo,fecha,audio,video FROM ensenanzas WHERE tema='".$nom."' ORDER BY fecha");

echo 
"<table bgcolor=\"#FFE0B3\" align=left style=\"border:1px outset black\">";
        for (
$i 0$i mysql_num_fields($result); $i++){ 
            print 
"<th>".mysql_field_name($result$i)."</th>\n";} 
        while (
$registro mysql_fetch_row($result)){
            echo 
"<tr>";
        foreach(
$registro as $clave){
            echo 
"<td bgcolor=\"#D2E9FF\"style=\"border:1px groove black\" align=\"left\">",htmlentities($clave),"</td>";}}
            echo 
"</tr></table>";
            
mysql_close();
?>
__________________
A veces hay que darle un golpecito al Pc para que funcione.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:49.