Foros del Web » Programando para Internet » PHP »

caracteres especiales

Estas en el tema de caracteres especiales en el foro de PHP en Foros del Web. hola chicos, tengo una BD (q no puedo tocar) y hay ciertos caracteres especiales como: Ú (é) ¾ (ó) Ý (í) ß (á) en fin, ...
  #1 (permalink)  
Antiguo 21/09/2008, 13:47
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 7 meses
Puntos: 15
caracteres especiales

hola chicos,

tengo una BD (q no puedo tocar) y hay ciertos caracteres especiales como:

Ú (é)
¾ (ó)
Ý (í)
ß (á)

en fin, q los acentos no los coge bien. me imagino q será cosa de las cabeceras HEADERS, pero no logro conseguirlo.

la cuestión es q quiero q cuando lea de la BD por ej. "pÚrdidas", me ponga "pérdidas".

gracias
  #2 (permalink)  
Antiguo 21/09/2008, 16:06
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Respuesta: caracteres especiales

A ver, cuando dices que la base se datos no la puedes tocar estás diciendo que ni siquiera puedes cambiar el contenido? Porque si puedes hacerlo entonces simplemente con consultas lo corriges. Ahora, esto puede resultar complicado. Mejor haz algo bien simple, reemplaza los carácteres ya que sabes la correspondencia, hazlo de este modo:

$extr = array("Ú", "¾", "Ý", "ß");
$reep = array("é", "ó", "í", "á");

....
....
$campo = $row["campo"];
for ($i = 0; i < count($extr); $i ++) $campo = str_replace($extr[$i], $reep[$i], $campo);

Espero que esta idea te sirva.
  #3 (permalink)  
Antiguo 21/09/2008, 16:42
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: caracteres especiales

Es mas facil:

$extr = array("Ú"=>"é", "¾"=>"ó", "Ý"=>"í", "ß"=>"á");
$limpio = strtr($row['campo'], $extr);
echo $limpio;

Tambien puedes poner el equivalente HTML en vez de la letra asi mismo con el acento.
  #4 (permalink)  
Antiguo 22/09/2008, 10:13
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 7 meses
Puntos: 15
Respuesta: caracteres especiales

así es, la BD no puedo modificarla, sólo consultarla.

he probado lo q m proponen y me funciona bien salvo para la "ó", ¿?

no tengo ni idea pq no va ¿?¿?¿?¿?¿
  #5 (permalink)  
Antiguo 22/09/2008, 11:42
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Respuesta: caracteres especiales

A lo mejor no has copiado bien el carácter extraño.
  #6 (permalink)  
Antiguo 22/09/2008, 11:44
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: caracteres especiales

Que codificación estas utilizando para mostrar la pagina?
  #7 (permalink)  
Antiguo 23/09/2008, 09:31
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 7 meses
Puntos: 15
Respuesta: caracteres especiales

sí q lo he copiado bien...

la codificación... pues he probado sin ella, con utf8, iso 5889, ...
  #8 (permalink)  
Antiguo 23/09/2008, 12:36
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: caracteres especiales

Trata imprimir el valor de un campo de la base de datos pero sin traducir (Cualquier campo que contenga caracteres extraños)
Y revisa si en el codigo (Ver > Codigo Fuente) esta el equivalente HTML a ¾ o si simplemente esta asi.
  #9 (permalink)  
Antiguo 23/09/2008, 14:33
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 7 meses
Puntos: 15
Respuesta: caracteres especiales

lo he hecho y sale ¾ en el código fuente. por si acaso lo copio/pego en el código en php y nada, sigue =
  #10 (permalink)  
Antiguo 23/09/2008, 20:05
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: caracteres especiales

Trata hacerle un htmlentities a el campo que recojes de la base de datos.
Revisas a ver el equivalente HTML y luego reemplazas.
  #11 (permalink)  
Antiguo 24/09/2008, 16:48
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 7 meses
Puntos: 15
Respuesta: caracteres especiales

disculpad, ya me funciona a la perfección, fue error de programación mío, 1000 perdones
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 21:14.