Foros del Web » Programando para Internet » PHP »

Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

Estas en el tema de Problema con caracteres especiales (incluso se empezo a trabajar como bug en php) en el foro de PHP en Foros del Web. Leo un archivo .DBF cuando levanto los datos en el navegador el mismo transforma los caracteres especiales. Para esto utilice reglas de cabeceras, funciones como ...
  #1 (permalink)  
Antiguo 06/09/2007, 07:18
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

Leo un archivo .DBF cuando levanto los datos en el navegador el mismo transforma los caracteres especiales. Para esto utilice reglas de cabeceras, funciones como utf8_encode, etc, etc, pero nada sigo teniendo el mismo problema. Como fue un problema que ya comente aqui me aconsejaron que hiciera un reporte a php; como si fuera un bug de las funciones de dbase (pense estamos todos locos, pero bueno lo hice, al principio me dieron varias formas de solucionarlo pero nada, pero utilizaron un programa que no daba ese problema, por la cual descartaron la idea que fuera un bug; jjaja a mi me parecia).

el script es el siguiente:

Código PHP:
header('Content-Type: text/html; charset=iso-8859-1');
include (
'config.php'); 
$link conectar_BD(); 
// abrir en modo solo lectura 
$db dbase_open('XXXXX.DBF'0); 

if (
$db) { 
  
$numero_registros dbase_numrecords($db); 
  for (
$i 1$i <= $numero_registros$i++) { 
     
$row dbase_get_record_with_names($db$i); 
      
      
     
$codigoweb1 $row['CODIGOWEB1'];
     
$codigoweb2 $row['CODIGOWEB2'];
     
$codigo $row['CODIGO'];
..... 
continua 
Lo vuelvo a plantear para ver si podemos hacer algo para solucionar este problema, desde ya muchas gracias y saludos.

PD: el numero del bug #41533.
  #2 (permalink)  
Antiguo 06/09/2007, 07:45
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 2 meses
Puntos: 33
De acuerdo Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

¿Qué tipo de "caracteres" te esta arrojando?

Saludillos.
  #3 (permalink)  
Antiguo 06/09/2007, 08:04
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

levanta esto: SET BUEN SUE¥O y deberia ser SET BUEN SUEÑO, gracias
  #4 (permalink)  
Antiguo 06/09/2007, 08:16
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 2 meses
Puntos: 33
De acuerdo Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

Pues si esta bien en tu archivo y se muestra mal en la pantalla seguramente es un problema de condificación. Para esta caso se tiene que usar utf8_decode() para que se respeten los acentos y los demás caractéres.

Saludillos.
  #5 (permalink)  
Antiguo 06/09/2007, 08:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

He probado tu script junto con la bd que pones en la pagina del Bug de PHP, y a la hora de visualizarlo con un Visor DBF (uso DBF Viewer 2000), me encuentro que la unica forma de ver los caracteres correctos es usando el charset OEM (no lo conocia) asi que probablemente el error este en el formato de DBF ya que al pasarlo a ANSI se ven los caracteres como el script PHP.

Yo creo el "bug" esta en que la extension de PHP no puede leer caracteres OEM y solo lee caracteres ANSI, asi que tendras que ver la forma de pasar los caracteres de OEM a ANSI para que se lean, te dejo una captura para que veas como en formato ANSI ya se ven bien:
Image1.jpg <- BD Original
Image2.jpg <- BD En formato ANSI
Image3.jpg <- BD Con caracteres latinos en formato ANSI
Image4.jpg <- Salida del Script

El codigo que use es este:
Código PHP:
<?php
header
('Content-Type: text/html; charset=iso-8859-1');
$db dbase_open('ARTD.DBF'0); 
if (
$db) { 
  
$numero_registros dbase_numrecords($db); 
  for (
$i 1$i <= $numero_registros$i++) { 
     
$row dbase_get_record($db$i);
        echo 
"Linea ($i):-->  " nl2brprint_r$rowtrue ) ) . "</br>\n"
  } 

?>
Saludos.
  #6 (permalink)  
Antiguo 06/09/2007, 08:32
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

OK; mira hice el cambio en la siguiente linea:

Código PHP:
echo "Linea ($i):-->  " $row['CODIGO'] . "----".utf8_decode($row['ARTICULO']).
y me sigue dando el mismo problema; mira que he probado de todo y nada. El archivo .dbf lo veo barbaro desde una aplicacion que lea ese formato; es mas si lo levanto en otro sistema (ejemplo access) lo levanta regio, el problema se me presenta en el uso de las funciones de php para dbase, bueno seguimos en la busqueda de la solucion, gracias
  #7 (permalink)  
Antiguo 06/09/2007, 13:39
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

Bueno no hay caso me esta transformando en un loco, no sale y no hay caso. Malditos caracteres, jajajjja. Bueno sigo en la lucha, saludos y gracias
  #8 (permalink)  
Antiguo 06/09/2007, 14:38
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

Probá meter la siguiente etiqueta en el head de tu html

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  #9 (permalink)  
Antiguo 06/09/2007, 14:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

Leiste el Post que hice? El problema es que el encoding que tiene tu base de datos no es soportado por PHP, tienes que cambiarlo a ANSI.

Saludos.
  #10 (permalink)  
Antiguo 06/09/2007, 15:58
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

tu sabes que no lo habia leido, pero tb ahora ni idea de como hacer para cambiar el encoding del dbf, bueno seguire buscando si saben de algo me avisan, bueno muchas gracias y seguimos en la lucha, saludos
  #11 (permalink)  
Antiguo 06/09/2007, 16:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

Con el DBF Viewer 2000 lo puedes cambiar pero todos los caracteres especiales se pierden asi que tendrias que volver a capturar.

Saludos.
  #12 (permalink)  
Antiguo 06/09/2007, 16:05
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

a ok, igual no entiendo cuando decis "se pierden tenes que volver a capturar", gracias, saludos
  #13 (permalink)  
Antiguo 06/09/2007, 16:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

Si cuando conviertes de OEM a ANSI pasa como la captura Imagen2.jpg que puse en mi POST, los caracteres se ven raros.

Saludos.
  #14 (permalink)  
Antiguo 06/09/2007, 16:11
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

a ok, ahora si yo cambio a ansi, despues colocando el codigo con cabecera en latin puedo insertar los datos en una tabla de mysql. Porque es esto en realidad lo que quiero hacer, es decir pasar los datos de los DBF a estructuras de MYSQL. Capaz que existe alguna otra solucion mejor????. Bueno gracias, saludos
  #15 (permalink)  
Antiguo 07/09/2007, 15:00
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problema con caracteres especiales (incluso se empezo a trabajar como bug en php)

bueno pude convertir en ansi, pero igual lo que no logro es que cuando los inserto en mysql me tome los caracteres especiales. Incluso probando el codigo de gatorV, tampoco. Bueno sigo en la lucha, saludos y gracias
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 07:08.