¿Cómo se determina el juego de caracteres de un shapefile?

25

¿Hay alguna manera de determinar el juego de caracteres utilizado para un archivo de forma dado?

Matthew Finlay
fuente

Respuestas:

9

Prueba y error. Intente abrir el archivo .dbf con Ms Excel o con OpenOffice usando una configuración diferente hasta que todo salga bien.

Mire esta publicación para obtener más pistas: /programming/319095/how-do-i-determine-the-character-set-of-a-string

Pablo
fuente
Si no se sabe nada sobre la codificación, vale la pena probar latin1 o UTF-8 primero.
krlmlr
Abrí el .dbf en Ms Excel y los caracteres aparecen normalmente. ¿Cómo puedo ver qué codificación está usando / detectando Excel? Para poder configurarlo en QGIS ...
user3386170
12

Hay dos formas para que los programas determinen el conjunto de caracteres para un shapefile.

Andreas W. Bartels
fuente
+1 Ese enlace a una página de formato de archivo dBase es excelente. Sin embargo, AFAIK, las páginas de códigos nunca se incluyeron en el formato dBase III. La referencia es a una extensión de FoxPro del formato, que sugiere que no todos los archivos .dbf tendrán información de página de códigos (o, si lo hacen, podría ser el resultado de la aparición de bytes de basura en un área libre del encabezado ) Pero si puede desenterrar esta información, sigue siendo un buen comienzo para una búsqueda de prueba y error. Por cierto, bienvenido a nuestro sitio!
whuber
Algunas bibliotecas dbf de python pueden leer la página de códigos si hay información allí.
Paulo Scardine
5

La fileutilidad puede adivinar la codificación de un archivo de texto. Úselo ogr2ogrpara una conversión que conserve la codificación original si no hay un .cpgarchivo :

ogr2ogr -f CSV file.csv file.dbf
file file.csv

Salida de ejemplo:

file.csv: ISO-8859 text

Lo he probado con dos de las codificaciones más frecuentes, UTF-8 y latin1. Funciona de fábrica en Ubuntu, no estoy seguro acerca de OS X. No conozco una fileutilidad en Windows.

NOTA : Tan pronto como haya un .cpgarchivo correspondiente que indique la codificación, ogr2ogrlo respetará y la salida estará en UTF-8. Pero si la salida CSV se ve bien, sabrá que la información en el .cpgarchivo es precisa.

krlmlr
fuente