Welche Zeichenkodierung verwendet die DBF-Datei in Shapefiles? Es scheint, als würde es anders gehandhabt, basierend auf dem Programm und den lokalen Kodierungseinstellungen der Maschine. Welche Kodierung ist 'richtig' - für das Format festgelegt?
Welche Zeichenkodierung verwendet die DBF-Datei in Shapefiles? Es scheint, als würde es anders gehandhabt, basierend auf dem Programm und den lokalen Kodierungseinstellungen der Maschine. Welche Kodierung ist 'richtig' - für das Format festgelegt?
Antworten:
Der ursprüngliche DBF-Standard definiert die Verwendung von ISO8859-1 und nur ISO8859-1. Wenn Sie also ein Shapefile erhalten, das wirklich den Standards entspricht, sollte es ISO8859-1 sein. Natürlich ist diese (sehr alte) Einschränkung heutzutage nicht wirklich verwendbar.
ArcGIS und Geopublisher, AtlasStyler und Geoserver haben begonnen, den Standard zu erweitern, um die Codierung zu definieren. Erstellen Sie für ArcGIS beispielsweise einfach eine .cpg-Datei (mit demselben Basisnamen wie die anderen Shapefiles) und füllen Sie sie mit dem Namen der Codierung.
zB erstelle eine myshape.cpg mit einem Texteditor und füge 5 Zeichen "UTF-8" ein und speichere sie. Wenn Sie dann das Shapefile in ArcGIS öffnen, wird der Textinhalt des DBF in diesem Zeichensatz gelesen.
Geoserver: Geoserver WFS kann jede WFS-Ebene als gezipptes Shapefile exportieren. Wenn dies erledigt ist, befindet sich eine .cst-Datei in der ZIP-Datei. Dies entspricht genau der .cpg-Datei.
Achtung: All dies gilt nur für die Daten, nicht für die Spaltennamen. Sie sollten eigentlich nur ASCII in den Spaltennamen eines DBF verwenden, wenn Sie möchten, dass die Datei mit anderen Programmen geöffnet werden kann.
Tipp: Um die Codierung eines DBF zu ändern, öffnen Sie ihn mit OpenOffice Calc. Wählen Sie Speichern unter. Klicken Sie links unten auf "Filteroptionen" und klicken Sie auf Speichern. Anschließend können Sie die Codierung definieren, in die der Textinhalt konvertiert werden soll.
General input/output error
wahrscheinlich nicht installiert . Das Problem ist das gleiche, ob Sie OpenOffice oder LibreOffice verwenden.
.cpg
Datei soll ab libgdal 1.9 auch in QGIS einwandfrei funktionieren. Manchmal scheint es sogar notwendig zu sein: ssrebelious.wordpress.com/2012/03/11/…
Ich bin mir ziemlich sicher, dass es keine "richtige" Codierung gibt. Eine DBF-Datei kann in einer beliebigen Codierung vorliegen. Sie können dann das Shapefile öffnen und die Attribute korrekt lesen, wenn Sie sie kennen.
Das ESRI-Whitepaper finden Sie hier: http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
Normalerweise erwarte ich, dass ein Shapefile entweder UTF-8 ist oder sich im Gebiet des abgedeckten Landes befindet (oft eine lateinische Kodierung).
Immer wenn ich eine Frage zum Kodieren sehe, verweise ich auf diesen Artikel: http://www.joelonsoftware.com/articles/Unicode.html
Wie es sagt:
Es ist nicht sinnvoll, einen String zu haben, ohne zu wissen, welche Codierung er verwendet. Sie können Ihren Kopf nicht mehr in den Sand stecken und so tun, als wäre "normaler" Text ASCII.
Eine einfache Möglichkeit ist die Konvertierung einer shp-Datei in eine csv-Datei. Verwenden Sie enca oder iconv, um die Codierung zu erkennen. Ich habe es mit UTF8- und gb18030-Dateien versucht und es funktioniert.