-
ANSIOEM: Conversión o marcado del juego de caracteres en ficheros ANSI (Windows), OEM (DOS) o UTF-8
Acceso a este texto de ayuda como página web: ANSIOEM
Presentación y opciones
Debido a la gran diversidad de caracteres que hay en los diferentes idiomas del mundo, a la necesidad de escribir símbolos especiales, y a la propia historia de la informática, se ha utilizado diferentes conjuntos de caracteres en diferentes países y bajo diferentes sistemas operativos. Como resultado de esto, es frecuente ver caracteres extraños, por ejemplo cuando leemos con un editor de texto plano, como el bloc de notas del Windows, un texto creado con un editor de texto plano de otro sistema operativo, como por ejemplo el EDIT del antiguo MS-DOS.
Este problema también podemos encontrarlo en las bases de datos, en las cuales hay campos de tipo texto en que los contenidos han sido escritos de acuerdo con alguno de los diversos conjuntos de caracteres existentes. En el caso concreto de las bases de datos en formato DBF hay una marca interna que, si está activada (valor mayor que cero), nos indica en qué conjunto de caracteres están escritos los textos, con lo cual es posible interpretarlos correctamente.
Este programa tiene varias opciones:
Conversión ANSI-OEM-UTF8:
Convierte ficheros de texto plano o en formato DBF entre los conjuntos de caracteres ANSI (Windows), OEM-850 (DOS) y/o UTF-8, con lo cual es posible visualizarlos y editarlos correctamente tanto desde editores Windows (como el bloc de notas) como MS-DOS (como el EDIT).
Marcar ANSI-OEM-UTF8:
Para el caso de los ficheros DBF, el programa permite marcarlos como OEM-850 (DOS), ANSI, UTF-8 u otros juegos de caracteres. Esto resulta especialmente útil cuando se trata de ficheros sin marcaje específico (marcados con el conjunto de caracteres 0), lo cual es habitual en archivos creados con versiones antiguas de dBASE o que provienen de software que genera ficheros DBF sin especificar ningún conjunto de caracteres en concreto. Debe recordarse, no obstante, que marcar una tabla DBF como perteneciente a un cierto conjunto de caracteres NO significa convertirla, sino simplemente indicar cómo debe interpretarse.
Muchos caracteres son transformables entre conjuntos de caracteres diferentes; por ejemplo tanto el conjunto de caracteres OEM-850 del MS-DOS, el ANSI 1252 de Windows como el UTF-8 contienen todas las letras mayúsculas y minúsculas acentuadas. Asimismo, algunos caracteres sólo existen en algunos conjuntos de caracteres; por ejemplo, el símbolo de marca registrada (TM), que en la tabla ANSI 1252 se puede representar con un solo carácter volado, no tiene representación en la tabla OEM-850. En estos últimos casos la conversión no es posible y hay que poner un carácter substituto arbitrario que nos indicará que en la traducción el conjunto de caracteres de destino no tiene ningún carácter suficientemente parecido al carácter en el conjunto de caracteres original.
Atención: Nunca se debe convertir un fichero que no sea de texto plano o DBF o se corromperá su contenido. Ejemplos de ficheros de texto plano son los REL y MMM de MiraMon, los ficheros TXT, BAT, etc.
Notas:
- Conjunto de caracteres ANSI: El programa utiliza el conjunto de caracteres 1252 de Windows, correspondiente a Europa Occidental y los Estados Unidos de América. En el caso de los ficheros DBF el programa los marca con el valor 88 (0x58), que en dBASE corresponde a 'WEurope ANSI'.
Algunas marcas posibles para ANSI en tablas DBF son:
'ascii ANSI' 87 (0x57) (dBASE)
'WEurope ANSI' 88 (0x58) (dBASE) [defecto del programa]
'Spanish ANSI' 89 (0x59) (dBASE)
'FoxPro ANSI' 3 (0x03) (FoxPro)
Para marcar una tabla de acuerdo con uno de estos conjuntos de caracteres se debe indicar el valor numérico decimal (por ejemplo 3 para FoxPro ANSI). MiraMon y MiraDades reconocen todas estas marcas.
- Conjunto de caracteres OEM: El programa utiliza el conjunto de caracteres OEM-850 DOS, también llamado "Latin 1" y extensamente usado en muchos países del mundo por su riqueza en caracteres acentuados. En el caso de los ficheros DBF el programa los marca con el valor 20 (0x14), que en dBASE corresponde a 'dbSPANISH2 dBASEESPcp850'.
Algunas marcas posibles para OEM-850 en tablas DBF son:
'dbDUTCH2 dBASENLDcp850' 10 (0x0A) (dBASE)
'dbFRENCH2 dBASEFRAcp850' 14 (0x0E) (dBASE)
'dbFRENCHCAN2 dBASEFRCcp850' 29 (0x1D) (dBASE)
'dbGERMAN2 dBASEDEUcp850' 16 (0x10) (dBASE)
'dbITALIAN2 dBASEITAcp850' 18 (0x12) (dBASE)
'dbPORTUGUESE2 dBASEPTBcp850' 37 (0x25) (dBASE)
'dbSPANISH2 dBASEESPcp850' 20 (0x14) (dBASE) [defecto]
'dbSWEDISH2 dBASESVEcp850' 22 (0x16) (dBASE)
'dbUK2 dBASEENGcp850' 26 (0x1A) (dBASE)
'dbUS2 dBASEENUcp850' 55 (0x37) (dBASE)
'FoxPro OEM-850' 2 (0x02) (FoxPro)
Para marcar una tabla de acuerdo con uno de estos conjuntos de caracteres se debe indicar el valor numérico decimal (por ejemplo 14 para FRENCH2). MiraMon y MiraDades reconocen todas estas marcas.
- Conjunto de caracteres UTF-8: El programa utiliza el conjunto de caracteres UTF-8 (8-bit Unicode Transformation Format), extensamente usado en muchos países del mundo porque puede representar cualquier carácter Unicode (que define cada carácter o símbolo mediante un nombre e identificador numérico). En el caso de los ficheros DBF el programa genera un fichero adjunto que informa de que la DBF está codificada en este juego de caracteres.
- Cuando se marca con un nuevo conjunto de caracteres el programa informa de cuál era el valor previo.
- Para conocer qué valor tiene la marca de un fichero DBF puede utilizar el menú Información del MiraDades.
Caja de diálogo de la aplicación
|
Caja de diálogo de ANSIOEM. |
Ejemplos
ANSIOEM C:\COPIA\LEE.TXT D:\LEE.TXT 1
ANSIOEM C:\COPIA\LEE.TXT D:\LEE.TXT 1
ANSIOEM C:\BASES\COMAR.DBF A:\COMAR 3
ANSIOEM C:\BASES\MUNICIP ANSI
ANSIOEM C:\BASES\MUNICIP 5
ANSIOEM C:\BASES\COMAR.DBF A:\COMAR_EN_UTF8.DBF 5
|
Ejemplos de la aplicación de ANSIOEM. |
Sintaxis
Sintaxis:
- ANSIOEM FicheroOrigen FicheroResultado Modo [Substituto]
- ANSIOEM FicheroDBF ConjuntoCarac
Parámetros:
- FicheroOrigen
(Fichero Origen -
Parámetro de entrada): Es el nombre del fichero origen con extensión. Si la extensión es DBF sólo se traducirá el contenido de los campos de tipo 'C'. Las otras extensiones se tratan como ficheros de texto y se traducen enteras.
- FicheroResultado
(Fichero Resultado -
Parámetro de salida): Es el nombre del fichero de destino. Se puede indicar sin extensión y el programa la añade.
- Modo
(Modo -
Parámetro de entrada):
- 0 ANSI -> OEM-850 (conversión de Borland).
- 1 ANSI -> OEM-850 (adaptación Semi-Estricta X. Pons - Recomendada).
- 2 ANSI -> OEM-850 (adaptación Estricta X. Pons).
- 3 OEM-850 -> ANSI (conversión de Borland).
- 4 ANSI -> UTF-8.
- 5 OEM-850 (conversión de Borland) -> UTF-8.
- 6 UTF-8 -> ANSI.
- 7 OEM-850 UTF-8 -> (conversión de Borland).
- Substituto
(Substituto -
Parámetro de entrada): Es el carácter usado para llenar los caracteres no convertibles (p.ej.: "X", "_"). Válido sólo en los modos 1 y 2. Si no se indica se solicitará.
- FicheroDBF
(Fichero DBF -
Parámetro de entrada): Es el nombre del fichero origen DBF. Sólo se traducirá el contenido de los campos de tipo 'C'. Las otras extensiones se tratan como ficheros de texto y se traducen enteras.
- ConjuntoCarac
(Conjunto de Caracteres -
Parámetro de entrada): Conjunto de caracteres con el cual se quiere marcar el fichero:
- ANSI
- OEM-850
- UTF-8
- cualquier valor decimal [0,255]
Borland, dBASE, DOS, FoxPro y Windows son marcas registradas de sus respectivos propietarios.