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 las aplicaciones de ArcGIS Desktop (ArcMap, ArcCatalog y ArcGIS Pro) que permite a las aplicaciones de Desktop leer y escribir shapefiles y archivos dBASE codificados 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.En el encabezado del archivo DBF, se incluye una referencia a una página de código. La página de código predeterminada de un shapefile (.DBF) se establece en UTF-8 (UNICODE). Este es el valor predeterminado para las prácticas de internacionalización actuales.

 

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 ArcMap, ArcCatalog y ArcGIS Pro, las aplicaciones 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. En base a la información de la página de código que se recupera, ArcGIS Desktop muestra las cadenas de caracteres debidamente 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 y Excel, 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 ArcGIS Pro se codifican en OEM. Alternativamente, si ‘dbfDefault’ está establecido en ANSI, los archivos shapefile y dBASE se codifican en ANSI.

Si un shapefile o un archivo dBASE no tienen 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 de dbfDefault está establecido en OEM y un archivo dBASE no tiene ni un LDID ni un archivo .cpg, ArcGIS 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, ArcCatalog y ArcGIS Pro (ya que las 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?
Las aplicaciones de ArcGIS Desktop son los únicos programas afectados por el ajuste dbfDefault.

¿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.

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 de 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. Agregue dos claves llamadas Common y CodePage en el registro del sistema.
    Para agregar una clave:
    1. Abra el Editor del 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
      • Equipo\HKEY_CURRENT_USER\Software\ESRI y haga clic en la clave de registro Desktop 10.x (donde x es la versión instalada actualmente).
      • En ArcGIS Pro, haga clic en la clave de registro ArcGISPro.
    3. Haga clic en el menú Editar y, a continuación, haga clic en Nueva > Clave.
    4. Agregue una nueva clave llamada Common: escriba el nombre Common y pulse Intro.
    5. Haga clic en la nueva clave Common y agregue otra 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 nueva clave CodePage.
    2. En el menú Editar, haga clic en Nuevo > Valor de cadena de caracteres.
    3. Escriba dbfDefault en el nuevo valor y pulse Intro.
  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 Datos de valor, escriba el nuevo valor de la página de código (en este ejemplo es SJIS) y haga clic en Aceptar.
edit-string.png

La nueva clave CodePage para ArcMap aparece de la siguiente forma:

reg-update-arcmap.png

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 ahora se pueden almacenar en UTF-8. No obstante, los shapefiles codificados en UTF-8 solo se reconocen en ArcMap, ArcCatalog y ArcGIS Pro.

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 siguiente código:
Para ArcMap
@ECHO OFF IF "%1"=="" GOTO :EOF reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.8\Common\CodePage /v dbfDefault /t REG_SZ /d %1 /f
Nota: Para ArcMap, cambie la ruta según sea necesario para que coincida con la versión de ArcMap del sistema que se va a modificar, por ejemplo, ..\Desktop10.7).

Para ArcGIS Pro

@ECHO OFF IF "%1"=="" GOTO :EOF  reg add HKEY_CURRENT_USER\Software\ESRI\ArcGISPro\Common\CodePage /v dbfDefault /t REG_SZ /d %1 /f
  1. Guarde el archivo en una ubicación en el equipo que se va a modificar.
  2. Abra una ventana de comandos (puede que sea necesario Ejecutar como administrador para ejecutar el archivo de lotes).
  3. 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

cmd-bat-small.png

Ahora, se crean las claves de registro para ArcGIS Pro y la página de código se establece en SJIS.

Registro actualizado con una nueva configuración de página de código para ArcGIS Pro
 

Última modificación: 3/13/2021

Id. de artículo: 000013192

Software: ArcMap 10.8.1, 10.8, 10.7.1, 10.7, 10.6, 10.5.1, 10.5, 10.4.1, 10.4, 10.3.1, 10.3, 10.2.2 ArcGIS Pro 2.4.3, 2.4.2, 2.4.1, 2.4, 2.3.3, 2.3.2, 2.3.1, 2.3, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2, 2.1.3, 2.1.2, 2.1.1, 2.1, 2.0.1, 2.0, 1.4.1, 1.4, 1.3.1, 1.3, 1.2