Qual codificação de caracteres é usada pelo arquivo dbf nos shapefiles? Parece que é tratado de maneira diferente, com base no programa e nas configurações de codificação locais da máquina. Qual codificação é 'certa' - especificada para o formato?
Qual codificação de caracteres é usada pelo arquivo dbf nos shapefiles? Parece que é tratado de maneira diferente, com base no programa e nas configurações de codificação locais da máquina. Qual codificação é 'certa' - especificada para o formato?
Respostas:
O padrão DBF original define o uso de ISO8859-1 e apenas ISO8859-1. Portanto, quando você obtém um Shapefile realmente compatível com os padrões, deve ser ISO8859-1. Obviamente, essa restrição (muito antiga) não é realmente utilizável atualmente.
ArcGIS e Geopublisher, AtlasStyler e Geoserver começaram a estender o padrão para definir a codificação. Para o ArcGIS , por exemplo, basta criar um arquivo .cpg (com o mesmo nome de base dos outros Shapefiles) e preenchê-lo com o nome da codificação.
por exemplo, crie um myshape.cpg com um editor de texto e insira 5 caracteres "UTF-8" e salve-o. Se você abrir o Shapefile no ArcGIS, ele lerá o conteúdo textual do DBF nesse conjunto de caracteres.
Geoserver: o Geoserver WFS pode exportar qualquer camada WFS como um Shapefile compactado. Quando isso é feito, um arquivo .cst está contido no zip, fazendo exatamente o mesmo que o arquivo .cpg.
Atenção: Tudo isso se aplica apenas aos dados, não aos nomes das colunas. Você realmente deve usar apenas ASCII nos nomes das colunas de um DBF se quiser que o arquivo possa ser aberto com outros programas.
Dica: Para alterar a codificação de um DBF, abra-o com o OpenOffice Calc. Escolha Salvar como ... clique em "Opções de filtro" no canto inferior esquerdo e pressione Salvar. Você pode definir a codificação para converter o conteúdo do texto.
General input/output error
provavelmente não possui o Base instalado . O problema é o mesmo, se você usa o OpenOffice ou o LibreOffice.
.cpg
arquivo também deve funcionar bem no QGIS, a partir da libgdal 1.9. Às vezes até parece ser necessário: ssrebelious.wordpress.com/2012/03/11/...
Tenho certeza de que não há codificação "certa". Um arquivo .dbf pode estar em qualquer codificação e você poderá abrir o Shapefile e ler os atributos corretamente, se souber.
Você pode encontrar o white paper da ESRI aqui: http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
Normalmente, espero que um shapefile seja UTF-8 ou no local do país coberto (geralmente alguma codificação em latim).
Sempre que vejo uma pergunta sobre codificação, indico as pessoas a este artigo: http://www.joelonsoftware.com/articles/Unicode.html
Como diz:
Não faz sentido ter uma string sem saber qual codificação ela usa. Você não pode mais enfiar a cabeça na areia e fingir que o texto "simples" é ASCII.
Uma maneira simples é converter o arquivo shp em um arquivo csv. E use enca ou iconv para detectar a codificação. Eu tentei com arquivos UTF8 e gb18030 e funciona.