Português

Instruções: Ler e gravar arquivos shapefile e dBASE codificados em várias páginas de código

Summary

A Esri implementou uma funcionalidade "CONVERSÃO DE PÁGINA DE CÓDIGO" no ArcGIS for Desktop (ArcMap, ArcCatalog e ArcToolbox) que permite que os aplicativos de Desktop leiam e gravem arquivos shapefile e dBASE codificados em várias páginas de código. A funcionalidade de conversão de página de código para arquivos dBASE (denominada "dbfDefault") é ativada especificando um valor de página de código no registro do sistema. Ela é muito semelhante à função &CODEPAGE usada no ArcInfo Workstation.

Em versões anteriores ao ArcGIS 10.2.1, é possível realizar os procedimentos a seguir para definir o comportamento da página de código desejada. Se o ArcGIS for Desktop 10.2.1 ou 10.2.2 estiver instalado, baixe e instale as correções descritas no artigo 42646 da Base de Conhecimento antes de seguir estas instruções.

Anotação:
No cabeçalho de cada shapefile (.DBF), inclui-se uma referência a uma página de código. Em versões anteriores ao ArcGIS 10.2.1, a página de código usada correspondia ao código de localidade do usuário. Por exemplo, se o usuário estiver usando um código de localidade do Japão, a página de código utilizada no arquivo .DBF será "Shft-JIS".

No ArcGIS 10.2.1, o padrão define a página de código como UTF-8 (UNICODE) no shapefile (.DBF). Isso está em conformidade com as práticas atuais de internacionalização e deve garantir que os dados sejam legíveis.

FAQs

O que a configuração dbfDefault faz?

Ao definir um valor de página de código no registro do sistema, os usuários podem ler e gravar arquivos shapefile e dBASE codificados nessa página de código. Por exemplo, podem exportar um shapefile codificado em OEM definindo o valor do registro da página de código como OEM. Os usuários também podem ler arquivos shapefiles e dBASE que não têm informações da página de código armazenadas, desde que saibam em qual página de código o arquivo está codificado.

Por que definir como dbfDefault?
Ao abrir um arquivo shapefile e dBASE no ArcGIS Desktop, os programas de Desktop analisam o ID de Driver de Idioma (LDID) no cabeçalho de um arquivo dBASE ou *.CPG associado, que são ambos usados para definir a página de código e ajudar a determinar a página de código do arquivo lido. Com base nas informações da página de código que recupera, o ArcGIS for Desktop exibe as strings adequadamente executando uma conversão de página de código, se necessário. Se um dBASE não tiver uma LDID ou um arquivo .CPG, ele assumirá que o arquivo está codificado na página de código do Windows (ANSI/Multi-byte).

Se os programas de Desktop lerem um arquivo dBASE codificado em OEM, mas esse arquivo não contiver informações da página de código ou não apresentar uma LDID ou um arquivo .CPG, os caracteres não serão exibidos corretamente. Isso ocorre porque os programas de Desktop assumem que o arquivo está codificado na página de código ANSI, pois ele não encontrou informações da página de código, embora na verdade tenha sido codificado em OEM. Isso significa que o ArcGIS trata o arquivo OEM como codificado em ANSI, o que causa uma exibição incorreta dos caracteres de 8 bits armazenados no arquivo.

A maioria dos arquivos shapefiles e dBASE tem informações da página de códigos armazenadas no arquivo. Alguns programas, como o Microsoft Access 2000 e o Excel 2000, codificam arquivos dBASE em OEM, mas não incluem as informações da página de códigos no LDID. Portanto, o ArcGIS não lê os arquivos corretamente. Para evitar esse problema, os usuários podem definir o dbfDefault na página de código apropriada antes de abrir um arquivo que não tem informações da página de código.

Como o dbfDefault funciona?
A configuração "dbfDefault" no registro do sistema define a página de código para a qual os arquivos shapefile e dBASE são exportados. A página de código de arquivos shapefile e dBASE criados no ArcGIS Desktop é codificada na página de código definida pelo valor "dbfDefault" do registro do sistema. Por exemplo, se "dbfDefault" estiver definido como OEM, os arquivos shapefile e dBASE criados no ArcMap, ArcCatalog e ArcToolbox serão codificados em OEM. Ou então, se "dbfDefault" estiver definido como ANSI, os arquivos shapefile e dBASE serão codificados em ANSI.

É importante observar que há uma exceção: os shapefiles exportados das coberturas no ArcCatalog e ArcToolbox em outros idiomas que não espanhol e do árabe são codificados em OEM, independentemente da configuração dbfDefault. Isso ocorre porque a "Cobertura para Shapefile" no ArcToolbox usa a funcionalidade do ArcInfo Workstation, que são camadas definidas executadas em DOS. Dessa forma, o arquivo de saída será sempre codificado na página de código OEM ou DOS. Os shapefiles exportados das coberturas no ArcCatalog e ArcToolbox em espanhol e árabe são codificados em ANSI. Os shapefiles exportados de uma cobertura no ArcCatalog e ArcToolbox estão sempre na página de código OEM (exceto em espanhol).

A mesma lógica aplica-se aos arquivos shapefile e dBASE que são lidos no ArcGIS for Desktop, ou seja, se um arquivo shapefile ou dBASE não tiver uma LDID ou um arquivo .cpg, o ArcGIS assumirá que o arquivo a ser codificado está na página de código definida pelo dbfDefault. Por exemplo, se o valor de dbfDefault estiver definido como OEM e um arquivo dBASE não tiver uma LDID e um arquivo.cpg, o ArcGIS for Desktop assumirá que o arquivo está codificado em OEM. Portanto, executará uma conversão de página de código para exibir os caracteres de 8 bits no ArcMap e no ArcCatalog (já que os dois aplicativos são programas do Windows que usam a página de código ANSI para exibir strings).
 
Anotação:
Se os usuários tiverem o valor de dbfDefault definido para uma determinada página de código, todos os arquivos shapefiles e dBASE exportados no ArcGIS serão codificados nessa página de código. Além disso, o programa considerará que todos os arquivos shapefiles e dBASE que não tiverem as informações da página de código estarão nessa página de código. Portanto, é importante retornar o valor de dbfDefault para o padrão (sem valor) quando a tarefa for concluída.
Com quais programas posso usar o dbfDefault?
O ArcGIS for Desktop é o único programa afetado pela configuração dbfDefault. Outros programas, como o ArcInfo Workstation e o ArcView 3.x, ou outras configurações de página de código, como a função "&CODEPAGE" usada no ArcInfo Workstation e o Perfil de Página de Código utilizado no ArcView 3.x, não são afetados.

No ArcInfo Workstation:
  • ARCSHAPE com &CODEPAGE OEM cria um shapefile em OEM
  • ARCSHAPE com &CODEPAGE ANSI cria um shapefile em ANSI
  • INFODBASE com &CODEPAGE OEM criar um arquivo dBASE em OEM
  • INFODBASE com &CODEPAGE ANSI criar um arquivo dBASE em ANSI
No ArcView 3.x:
  • Os arquivos shapefile e dBASE são salvos na página de código ANSI.
Quais formatos de dados são afetados pelo dbfDefault?
Os arquivos shapefile e dBASE são os únicos formatos de dados que podem ser usados pela configuração dbfDefault para especificar a página de código. Outros formatos, como cobertura e geodatabase pessoal, não são afetados por essa configuração.

No ArcGIS for Desktop (independentemente da configuração dbfDefault):
  • Geodatabases pessoais são salvos em Unicode
  • Tabelas de geodatabases pessoais são salvas em Unicode
  • Coberturas são salvas na página de código ISO
  • Arquivos INFO são salvos na página de código ISO
  • Arquivos de intercâmbio são salvos na página de código ANSI
  • Arquivos de texto são salvos na página de código ANSI

Procedure

As instruções a seguir descrevem como definir o valor de dbfDefault no registro do sistema. Duas opções são mostradas abaixo.

Aviso:
As instruções abaixo mostram como fazer alterações em partes essenciais do seu sistema operacional. É recomendável fazer backup do sistema operacional e dos arquivos, incluindo o registro, antes de continuar. Consulte um profissional de sistemas de computador qualificado, se necessário.

A Esri não pode garantir os resultados de modificações incorretas ao seguir estas instruções. Portanto, tenha cuidado e proceda por sua conta e risco.

Opção A
  1. Adicione duas chaves chamadas "Common" e "CodePage" ao registro do sistema.
    Para adicionar uma chave:
    1. Abra o Editor do Registro: Clique em Iniciar > Executar, digite "regedit" e clique em OK.
    2. Na árvore do registro (no painel esquerdo da janela do registro), vá para "My Computer\HKEY_CURRENT_USER\Software\ESRI', and click the registry key, 'Desktop 10.x". Para o Pro, clique na chave de registro "Pro1.0". (Para a versão 9.3.1 e anteriores, vá para "My Computer\HKEY_CURRENT_USER\Software" e clique na chave de registro ESRI.)
    3. Adicione uma nova chave chamada "Common" (no menu Editar:
      Navegue até Novo, selecione Chave, digite o nome "Common" e pressione ENTER).
    4. Clique na chave do registro recém-criada (Common) e adicione uma nova chave chamada "CodePage".
  2. Adicione um novo valor de string, "dbfDefault", à chave CodePage.
    Para adicionar um valor de string:
    1. Clique na chave CodePage.
    2. No menu Editar, navegue até Novo e selecione "Valor da Cadeia de Caracteres".
    3. Digite "dbfDefault" como o novo valor e pressione ENTER.

      A nova chave CodePage deve ter a seguinte aparência:
      [O-Image] Screenshot of dbfDefault in
       
  3. Digite um valor da página de código.
    1. Selecione a entrada que você acabou de adicionar. É importante que dbfDefault esteja selecionado e não (Padrão).
    2. Editar, clique em Modificar.
    3. Em dados do Valor, digite o novo valor da página de código e clique em OK.
      A seguir, estão listados os identificadores de página de código suportados (não diferenciam maiú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 - Grego, Grego (DOS)
775 - Báltico, Báltico (DOS)
850 - Multilíngue Latino 1, Europeu Ocidental (DOS)
852 - Latino 2, Europeu Central (DOS)
855 - Cirílico
857 - Turco, Turco (DOS)
860 - Português, Português (DOS)
861 - Islandês, Islandês (DOS)
862 - Hebraico, Hebraico (DOS)
863 - Francês Canadense, Francês Canadense (DOS)
864 - Árabe, Árabe (864)
865 - Nórdico, Nórdico (DOS)
866 - Russo, Cirílico (DOS)
869 - Grego Moderno, Grego Moderno (DOS)
932 - Japonês, Japonês (Shift-JIS)
936 - Chinês (simplificado): República Popular da China, Singapura
949 - Coreano (Código Hangul Unificado)
950 - Chinês Tradicional: Taiwan, Hong Kong, República Popular da China
ALARABI - Define a página de código como 448
  • Identificadores de Página de Código ANSI
1250 - Europeu Central
1251 - Cirílico
1252 - Europeu Ocidental
1253 - Grego
1254 - Turco
1255 - Hebraico
1256 - Árabe
1257 - Idiomas bálticos
1258 - Vietnamita
Big5 - Chinês: Taiwan, Hong Kong, Macau
SJIS - Japonês (Define a página de código como 932)
  • Identificadores de Página de Código ISO
88591 - Latino 1: Europeu Ocidental
88592 - Latino 2: Europeu Central e Oriental
88593 - Latino 3: Europeu Meridional
88594 - Latin 4: Europeu Setentrional
88595 - Cirílico
88596 - Árabe
88597 - Grego
88598 - Hebraico
88599 - Latino 5: Turco
885910 - Latino 6: Nórdico
885911 - Tailandês
885913 - Lituano
885915 - Latino 9: Europeu Ocidental (Atualizado do Latino 1)
  • Valores Unicode
UTF-8 - Define a página de código como 65001
UTF8 - Define a página de código como 65001
Anotação:
Shapefiles agora podem ser armazenados em UTF-8. No entanto, os shapefiles codificados em UTF-8 são reconhecidos apenas no ArcGIS for Desktop.

Opção B

Como alternativa, é possível usar um arquivo em lotes para modificar o registro do Windows.
  1. No Bloco de Notas, crie o arquivo ChangeCodePage.bat usando o seguinte código:
    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
    Anotação:
    Altere o caminho para corresponder à versão do ArcGIS no sistema que será modificada, por exemplo, ..\Desktop10.1).
  2. Salve o arquivo em um local na máquina a ser modificada.
  3. Abra uma janela do prompt de comando (pode ser necessário selecionar "Executar como Administrador" para executar o arquivo em lotes).
  4. Para executar o arquivo em lotes (e alterar a página de código para Japonês neste exemplo), navegue até o local do arquivo em lotes e execute o seguinte comando:
    ChangeCodePage SJIS
    As chaves do registro foram criadas, e a página de código foi definida como SJIS.
[O-Image]

Last Published: 3/13/2021

Article ID: 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