Quale codifica dei caratteri viene utilizzata dal file dbf nei shapefile? Sembra che sia gestito in modo diverso, in base al programma e alle impostazioni di codifica locali della macchina. Quale codifica è "giusta", specificata per il formato?
Quale codifica dei caratteri viene utilizzata dal file dbf nei shapefile? Sembra che sia gestito in modo diverso, in base al programma e alle impostazioni di codifica locali della macchina. Quale codifica è "giusta", specificata per il formato?
Risposte:
Lo standard DBF originale definisce l'uso di ISO8859-1 e solo ISO8859-1. Quindi, quando ottieni uno Shapefile conforme agli standard, dovrebbe essere ISO8859-1. Naturalmente, questa (molto vecchia) restrizione non è realmente utilizzabile al giorno d'oggi.
ArcGIS e Geopublisher, AtlasStyler e Geoserver hanno iniziato a estendere lo standard per definire la codifica. Per ArcGIS , ad esempio, basta creare un file .cpg (con lo stesso nome di base degli altri Shapefile) e riempirlo con il nome della codifica.
ad es. creare un myshape.cpg con un texteditor e inserire 5 caratteri "UTF-8" e salvarlo. Se quindi si apre Shapefile in ArcGIS, legge i contenuti testuali del DBF in quel set di caratteri.
Geoserver: Geoserver WFS può esportare qualsiasi livello WFS come Shapefile compresso. Al termine, un file .cst è contenuto nella zip, esattamente come il file .cpg.
Attenzione: tutto ciò si applica solo ai dati, non ai nomi delle colonne. Dovresti davvero usare ASCII solo nei nomi di colonna di un DBF se vuoi che il file sia apribile con altri programmi.
Suggerimento: per modificare la codifica di un DBF aprilo con OpenOffice Calc .. scegli Salva come ... fai clic su "Opzioni filtro" in basso a sinistra e premi Salva. È quindi possibile definire la codifica in cui convertire il contenuto del testo.
General input/output error
probabilmente non hai installato Base . Il problema è lo stesso se si utilizza OpenOffice o LibreOffice.
.cpg
file dovrebbe funzionare bene anche in QGIS, a partire da libgdal 1.9. A volte sembra addirittura necessario: ssrebelious.wordpress.com/2012/03/11/…
Sono abbastanza sicuro che non esiste una codifica "giusta". Un file .dbf può essere in qualsiasi codifica e sarai in grado di aprire lo Shapefile e leggere correttamente gli attributi se lo conosci.
È possibile trovare il white paper ESRI qui: http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
Di solito mi aspetto che uno shapefile sia UTF-8 o nel locale del paese coperto (spesso con una codifica latina).
Ogni volta che vedo una domanda sulla codifica, rimando le persone a questo articolo: http://www.joelonsoftware.com/articles/Unicode.html
Come dice:
Non ha senso avere una stringa senza sapere quale codifica utilizza. Non puoi più mettere la testa nella sabbia e fingere che il testo "normale" sia ASCII.
Un modo semplice è convertire il file shp in un file CSV. E usa enca o iconv per rilevare la codifica. Ho provato con i file UTF8 e gb18030 e funziona.