Español

Cómo: Leer y escribir shapefiles y archivos dBASE codificados en varias páginas de código

Resumen

Esri ha implementado la funcionalidad ‘CONVERSIÓN DE PÁGINA DE CÓDIGO’ en ArcGIS for Desktop (ArcMap, ArcCatalog y ArcToolbox) que permite a las aplicaciones de escritorio leer y escribir shapefiles y archivos dBASE files en varias páginas de código. La funcionalidad de conversión de página de código para archivos dBASE (llamada ‘dbfDefault’) activa especificando un valor de página de código en el registro del sistema. Es muy similar a la función &CODEPAGE utilizada en ArcInfo Workstation.

Antes de la versión ArcGIS 10.2.1, se pueden utilizar los siguientes procedimientos para establecer el comportamiento de página de código deseado. Si se ha instalado ArcGIS for Desktop 10.2.1 o 10.2.2, descargue e instale los parques que se describen en el artículo 42646 de la Base de conocimiento antes de seguir estas instrucciones.

Nota:
En el encabezado de cada shapefile (.DBF), se incluye una referencia a una página de código. Antes de la versión ArcGIS 10.2.1, la página de código que se utilizaba correspondía a la configuración regional del usuario. Por ejemplo, si la configuración regional del usuario es japonés, la página de código utilizada en el archivo .DBF file es 'Shft-JIS'.

En ArcGIS 10.2.1, el valor predeterminado establece la página de código en UTF-8 (UNICODE) en el shapefile (.DBF). Esto es constante con las prácticas de internacionalización actuales y debe asegurar que los datos son legibles.

Preguntas frecuentes

¿Qué hace la configuración dbfDefault?

Al configurar un valor de página de código en el registro del sistema, los usuarios pueden leer y escribir shapefiles y archivos dBASE codificados en esa página de código. Por ejemplo, los usuarios pueden exportar un shapefile codificado en OEM estableciendo el valor de registro de la página de código en OEM. Los usuarios también pueden leer shapefiles y archivos dBASE que no tienen la información de la página de código almacenada en el archivo siempre y cuando los usuarios sepan en qué pagina de código el archivo está codificado.

¿Por qué configurar la funcionalidad dbfDefault?
Al abrir un shapefile y un archivo dBASE en ArcGIS Desktop, los programas de Desktop examinan el Id. del controlador de idioma (LDID) en el encabezado de un archivo dBASE o un archivo *.CPG asociado, que se usan para definir la página de código y ayudar a determinar la página de código del archivo que se lee. Basándose en la información de la página de código que recupera, ArcGIS for Desktop muestra las cadenas de caracteres correspondientes realizando una conversión de página de código si es necesario. Si a un archivo dBASE le falta un LDID o un archivo .CPG, presupone que el archivo está codificado en la página de código de Windows (ANSI/Multi-byte).

Si los programas de Desktop leen un archivo dBASE codificado en OEM pero el archivo no contiene ninguna información de página de código o no tiene un LDID o un archivo .CPG, los caracteres no se muestran correctamente. Esto se debe a que los programas de Desktop presuponen que el archivo está codificado en la página de código ANSI ya que no puede encontrar información de la página de código, pero el archivo en realidad se codifica en OEM. Esto significa que ArcGIS trata el archivo OEM como si estuviera codificado en ANSI, lo que provoca una visualización incorrecta de los caracteres de 8 bits almacenados en el archivo.

La mayoría de los shapefiles y archivos dBASE deben tener la información de página de código almacenada en el archivo. Algunos programas, como Microsoft Access 2000 y Excel 2000, codifican los archivos dBASE en OEM pero no incluyen la información de página de código en el LDID, de modo que ArcGIS no lee los archivos correctamente. Para evitar este problema, los usuarios pueden configurar la funcionalidad dbfDefault en la página de código apropiada antes de abrir un archivo sin información de la página de código.

¿Cómo funciona dbfDefault?
El parámetro ‘dbfDefault’ del registro del sistema define la página de código a la que se exportan un shapefile y un archivo dBASE. La página de código de un shapefile y un archivo dBASE que se crean en ArcGIS Desktop se codifican en la página de código definida por el valor ‘dbfDefault’ del registro del sistema. Por ejemplo, si ‘dbfDefault’ está establecido en OEM, los archivos shapefile y dBASE creados en ArcMap, ArcCatalog y ArcToolbox se codifican en OEM. Alternativamente, si ‘dbfDefault’ está establecido en ANSI, los archivos shapefile y dBASE se codifican en ANSI.

Es importante observar que hay una excepción: ArcCatalog y ArcToolbox en otros idiomas fuera de español y árabe se codifican en OEM, independientemente de la configuración de dbfDefault. Esto se debe a que la ‘Cobertura a Shapefile’ en ArcToolbox utiliza la funcionalidad de ArcInfo Workstation, que consiste en capas definidas que se ejecutan en DOS, de forma que el archivo de salida está siempre codificado en la página de código de OEM o en la página de código de DOS. Los shapefiles exportados desde coberturas en ArcCatalog y ArcToolbox en español y árabe están codificados en ANSI. Los shapefiles exportados desde una cobertura en ArcCatalog y ArcToolbox siempre están en la página de código de OEM (excepto en español).

La misma lógica es aplicable a los archivos shapefile y dBASE que se leen en ArcGIS for Desktop; si un shapefile o un archivo dBASE no tiene un LDID o un archivo .cpg, ArcGIS presupone que el archivo que se va a codificar está en la página de código definida por dbfDefault. Por ejemplo, si el valor dbfDefault está establecido en OEM y un archivo dBASE no tiene ni un LDID ni un archivo .cpg, ArcGIS for Desktop presupone que el archivo está codificado en OEM y, por consiguiente, realiza una conversión de página de código para mostrar los caracteres de 8 bits en ArcMap y ArcCatalog (ya que las dos aplicaciones son programas de Windows que utilizan la página de código ANSI para mostrar cadenas de caracteres).
 
Nota:
Si los usuarios tienen el valor de dbfDefault establecido en una determinada página de código, todos los shapefiles y archivos dBASE exportados en ArcGIS se codifican en esa página de código. Todos los shapefiles y archivos dBASE que no tengan información de página de código se presupone que están en esa página de código también. Por consiguiente, es importante volver a establecer el valor de dbfDefault en su valor predeterminado (no valor) cuando finaliza la tarea.
¿Qué programas se pueden utilizar con dbfDefault?
ArcGIS for Desktop es el único programa al que afecta el parámetro dbfDefault. Otros programas, como ArcInfo Workstation y ArcView 3.x u otros parámetros de página de código como la función ‘&CODEPAGE’ utilizada en ArcInfo Workstation y el Perfil de página de código utilizado en ArcView 3.x, no se ven afectados.

En ArcInfo Workstation:
  • ARCSHAPE con &CODEPAGE OEM crea un shapefile en OEM
  • ARCSHAPE con &CODEPAGE ANSI crea un shapefile en ANSI
  • INFODBASE con &CODEPAGE OEM crea un archivo dBASE en OEM
  • INFODBASE con &CODEPAGE ANSI crea un archivo dBASE en ANSI
En ArcView 3.x:
  • Los archivos shapefile y dBASE se guardan en la página de código de ANSI.
¿A qué formatos de datos afecta dbfDefault?
Los archivos shapefile y dBASE son los únicos formatos de datos que pueden ser utilizados por el parámetro dbfDefault para especificar la página de código. Otros formatos de datos, como la cobertura y la geodatabase personal no se ven afectados por el parámetro dbfDefault.

En ArcGIS for Desktop (con independencia del parámetro dbfDefault):
  • Las geodatabases personales se guardan en Unicode
  • Las tablas de geodatabases personales se guardan en Unicode
  • Las coberturas se guardan en la página de código de ISO
  • Los archivos INFO se guardan en la página de código de ISO
  • Los archivos de intercambio se guardan en la página de código de ANSI
  • Los archivos de texto se guardan en la página de código de ANSI

Procedimiento

Las instrucciones proporcionadas describen como establecer el valor dbfDefault en el registro del sistema. A continuación se incluyen dos opciones.

Advertencia:
Las instrucciones que se indican a continuación incluyen hacer cambios en partes fundamentales del sistema operativo. Se recomienda que realice una copia de seguridad del sistema operativo y los archivos, incluido el registro, antes de continuar. Si es necesario, consulte con un profesional en sistemas informáticos cualificado.

Esri no puede garantizar los resultados derivados de modificaciones incorrectas al seguir estas instrucciones; por tanto, tenga cuidado y continúe bajo su propio riesgo.

Opción A
  1. Agregar dos claves llamadas ‘Common’ y ‘CodePage’ en el registro del sistema.
    Para agregar una clave:
    1. Abra el Editor de registro: Haga clic en Inicio > Ejecutar, escriba ‘regedit’ y haga clic en Aceptar.
    2. En el árbol de registro (en el panel izquierdo de la ventana de registro), vaya a ‘Mi equipo\HKEY_CURRENT_USER\Software\ESRI’ y haga clic en la clave de registro, 'Desktop 10.x'. En Pro haga clic en la clave de registro 'Pro1.0'. (para la versión 9.3.1 y versiones anteriores, vaya a ‘Mi equipo\HKEY_CURRENT_USER\Software’ y haga clic en la clave de registro ESRI).
    3. Agregue una nueva clave llamada ‘Common’ (en el menú Editar:
      Vaya a Nueva, seleccione Clave, escriba el nombre «Common» y pulse INTRO).
    4. Haga clic en la clave de registro que acaba de crear (Common) y agregue una nueva clave llamada 'CodePage'.
  2. Agregue un nuevo valor de cadena de caracteres, ‘dbfDefault’ a la clave CodePage.
    Para agregar un valor de cadena de caracteres:
    1. Haga clic en la clave CodePage.
    2. En el menú Editar, vaya a Nuevo y seleccione ‘Valor de cadena de caracteres'.
    3. Escriba ‘dbfDefault’ en el nuevo valor y pulse INTRO.

      La nueva clave CodePage debe aparecer de la forma siguiente:
      [O-Image] Screenshot of dbfDefault in
       
  3. Introduzca un valor de página de código.
    1. Seleccione la entrada que acaba de agregar, es importante que esté seleccionado dbfDefault y no (Default).
    2. En el menú Editar, haga clic en Modificar.
    3. En los datos de Valor, escriba el nuevo valor de la página de código y haga clic en Aceptar.
      A continuación se incluyen listas de los identificadores página de código admitidos (no distinguen mayúsculas de minúsculas).
  • Identificadores de Página de código OEM
437 - Estados Unidos
708 - Árabe (ASMO 708)
720 - Árabe (ASMO transparente), Árabe (DOS)
737 - Griego, Griego (DOS)
775 - Báltico, Báltico (DOS)
850 - Latín 1, multilingüe, europeo occidental (DOS)
852 - Latín 2, europeo central (DOS)
855 - Cirílico
857 - Turco, Turco (DOS)
860 - Portugués, Portugués (DOS)
861 - Islandés, Islandés (DOS)
862 - Hebreo, Hebreo (DOS)
863 - Francocanadiense, Francocanadiense (DOS)
864 - Árabe, Árabe (864)
865 - Nórdico, Nórdico (DOS)
866 - Ruso, Cirílico (DOS)
869 - Griego moderno, Griego moderno (DOS)
932 - Japonés, Japonés (Shift-JIS)
936 - Chino (simplificado): República Popular China, Singapur
949 - Coreano (Código Hangul unificado)
950 - Chino tradicional: Taiwán, Hong Kong, República Popular China
ALARABI - Establece la página de código en 448
  • Identificadores de Página de código ANSI
1250 - Europeo central
1251 - Cirílico
1252 - Europeo occidental
1253 - Griego
1254 - Turco
1255 - Hebreo
1256 - Árabe
1257 - Lenguas bálticas
1258 - Vietnamita
Big5 - Chino: Taiwán, Hong Kong, Macao
SJIS - Japonés (establece la página de código en 932)
  • Identificadores de Página de código ISO
88591 - Latín 1, Europeo central
88592 - Latín 2: Europeo central y oriental
88593 - Latín 3, Europeo sur
88594 - Latín 4, Europeo norte
88595 - Cirílico
88596 - Árabe
88597 - Griego
88598 - Hebreo
88599 - Latín 5: Turco
885910 - Latín 6: Nórdico
885911 - Tailandés
885913 - Lituano
885915 - Latín 9: Europeo occidental (actualizado desde Latín 1)
  • Valores Unicode
UTF-8 - Establece la página de código en 65001
UTF8 - Establece la página de código en 65001
Nota:
Los shapefiles se pueden guardar ahora en UTF-8. No obstante, los shapefiles codificados en UTF-8 solo se reconocen en ArcGIS for Desktop.

Opción B

También puede utilizar un archivo por lotes para modificar el registro de Windows.
  1. En Notepad, cree el archivo ChangeCodePage.bat, utilizando el código siguiente:
    Código:
    @ECHO OFF
    IF "%1"=="" GOTO :EOF 
    reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.3\Common\CodePage /v dbfDefault /t REG_SZ /d %1 /f
    Nota:
    Cambie la ruta para que coincida con la versión de ArcGIS en el sistema que se va a modificar, por ejemplo,\Desktop10.1).
  2. Guarde el archivo en una ubicación en el equipo que se va a modificar.
  3. Abra una ventana de comando (puede que sea necesario ‘Ejecutar como administrador’ para ejecutar el archivo por lotes).
  4. Para ejecutar el archivo por lotes (y cambiar la página de código a japonés en este ejemplo), vaya a la ubicación del archivo por lotes y ejecute el siguiente comando:
    ChangeCodePage SJIS
    Se crean las claves de registro y la página de código se establece en SJIS.
[O-Image]