Hola a todos, estoy teniendo un problema al migrar un sistema viejo a una plataforma web, el sistema anterior tenía bases en DBF (aparentemente estaba escrito en FOX que es un lenguaje que usas DBF como bases muy a menudo).
Estoy subiendo las bases a MySQL. Lo primero que intente hacer es subir los DBF (son muchisimos) directamente al mySQL pero desde el Migration Toolkit, ni del Migration Wizard (Workbench) no eran compatibles, sino que habìa que pasar antes los archivos de DBF a CSV por ejemplo. También hay muchos programas pagos que hacen exportación a otros formatos, pero no encontré ninguno que lo haga gratis.
Entonces decidí hacer yo mismo la exportación, para eso habilite la extensión de dbase en PHP y usé estas funciones http://php.net/manual/es/book.dbase.php . Pude abrir bien las bases y escribirlas en el server MySQL en sus respectivas tablas.
Pero tengo problemas con los caracteres especiales ÁÉÍÓÚ y Ñ etc... aparentemente los DBF están guardados en formato ascii extendido, la tabla ASCII que todos conocemos, allí por ejemplo el caracter Á es el numero 181 (sería lo mismo que pararse en cualquier editor de texto y escribir Alt+181).
http://es.wikipedia.org/wiki/ASCII_extendido
Sin embargo, la mayoría de los archivos de los editores guardan los datos en ANSI (latin 1 o ISO-8859-1) , donde el caracter "Á" es el 193
http://es.wikipedia.org/wiki/ISO_8859-1http://es.wikipedia.org/wiki/ISO_8859-1
Y no puedo leer correctamente el archivo original.
Estoy usando las
$cadena=mb_convert_encoding($cadena,"ISO-8859-1","ASCII");
o
$cadena=iconv("ASCII","ISO-8859-1",$cadena);
y variando para visualizarlo bien en pantalla con las funciones
ini_set( 'default_charset', 'ASCII' );
header('content-type:text/html; charset=ASCII');
iconv_set_encoding("internal_encoding", "ASCII");
iconv_set_encoding("output_encoding", "ASCII");
Pero no me dan el resultado esperado, no lo puedo ver bien en pantalla y mucho menos guardarlo correctamente en la base de datos.
Si alguien me puede ayudar se los agradecería (acá les paso un ejemplo de DBF. Si abren el DBF con excel (al menos con mi excel 2010) se puede observar bien los acentos)
https://dl.dropboxusercontent.com/u/75309684/test.dbf
Gracias