Seite 1 von 1
Sonderzeichen -> Umlaute
Verfasst: Montag 6. Juli 2009, 09:14
von tco95ttocs
Hi
hab nen Shapefile mit mehreren Attributspalten, darunter 2 mit Namen. In diesem Shapefile ist es irgendwann mal passiert, dass die Umlaute zu Sonderzeichen wurden, sprich
ö = "
ä = " (aber unten)
ü = ein Quadrat (k.a. welcher Code das erstellt!)
ß = á
Wie bekomm ich am besten aus den Sonderzeichen wieder Umlaute hin?
Verfasst: Montag 6. Juli 2009, 09:33
von Andyh
Hallo
Also mir würde da spontan "replace" einfallen
Gruß
Andyh
Verfasst: Montag 6. Juli 2009, 10:29
von tco95ttocs
joa klingt logisch, allerdings muss ich ja zudem noch zwischen dem hochgestellten " und dem runtergestellten " unterscheiden, nur hab ich bis jetzt noch keinen befehl gefunden der das macht!
ach kann ich ja einfach mit Copy&paste machen
Code: Alles auswählen
string="”á„"
print string.replace('”', 'ö').replace('„','ä').replace('á','ß')
so wie oben funktioniert es fürs ä, ö und ß, wenn ich nun aber das "Quadrat" einfügen will
Verfasst: Montag 6. Juli 2009, 11:02
von frabron
Shapefiles sind oft in ISO-8859-1 kodiert. In welcher Kodierung sind denn deine? Wie greifst du denn auf das DBF zu? Vielleicht benutzt du unterschiedliche Kodierungen, oder liest die Attribute im falschen Format ein?!
Gruß
Frank
Verfasst: Montag 6. Juli 2009, 11:08
von BlackJack
Der "Mist" ist vielleicht das was Du willst, vielleicht aber auch nicht. Das kann man nicht wissen solange man a) nicht weiss was Du willst und b) die Bytewerte nicht kennt, sondern nur dass was Du von irgendwoher hier per kopieren und einfügen zeigst.
Das sieht nach UTF-8 aus, was fälschlicherweise als cp1252 dekodiert wurde. Du musst Dich halt mal mit Bytewerten und Kodierungen auseinandersetzen.
Verfasst: Montag 6. Juli 2009, 11:39
von tco95ttocs
das problem ist einfach, dass ich nicht weis, was besagtes shapefile für ne Codierung aufweist, haben es so bereits geliefert bekommen, mit sicherheit ist da irgendwann mal was beim konvertieren schief gelaufen...
ich bastel dann mal ne schleife mit men cursor, sodass ich direkt auf die attribute zugreifen kann und da werd ich ma guggen, was da python so ausliest. Aber erstmal muss ich was für Groß und kleinschreibung schreiben, hab da auch ein shape, wo alles Groß geschrieben ist...
Verfasst: Montag 6. Juli 2009, 12:27
von frabron
Du kannst versuchen, mit der OO Tabellenkalkulation die DBF zu öffnen. Normalerweise fragt OO nach der Kodierung. Einfach probieren, bis die Datei richtig eingelesen wird.
Das hier könnte dir auch helfen, die Codepage auszulesen. So wie es scheint, steht die Codepage im Byte 29 der Kopfzeile vom DBF
http://trac.osgeo.org/gdal/ticket/2864
Verfasst: Montag 6. Juli 2009, 12:41
von b.esser-wisser
Mal im Namen aller, die keine Ahnung haben was ein Shapefile sein könnte:
Was ist ein Shapefile (XML, Text, CSV, binär, etc.)?
Wenn du das weißt, musst du es nur noch 'korrekt' öffnen (wobei das csv Modul nicht mit Unicode umgehen kann, da musst du deinen Texte anschließend str.decode()'n).
[wiki=Von Umlauten, Unicode und Encodings]Das hier[/wiki] hast du natürlich schon mal gelesen, oder?
hth, Jörg
Verfasst: Montag 6. Juli 2009, 12:56
von tco95ttocs
danke für den Tip mit der Tabellenkalk. Habs grad mal in Excel geöffnet und siehe da, alles war richtig geschrieben, habs dann gleich mit Copy and Paste ins Shape-file kopiert, funktionierte 1a.
Wenn ich das neue DBF dann wieder in Excel öffne steht wieder Buchstabensalat drin, aber das is dann wurst, solang es im shp passt

Verfasst: Montag 6. Juli 2009, 13:01
von frabron
Das Shapefile-Format ist ein Quasistandard zur Speicherung von Geodaten. Es besteht mindestens aus drei Dateien, mit den Endungen .shp, .shx und .dbf. In der .shp Datei stehen die Geometrien, in der .dbf die Attribute zu den Geometrien, das ist eine normale Dbase Datei, und in der .shx ist die Verknüpfung zwischen Geometrie und Attribut realisiert.
Alles binär und relativ einfach im Aufbau. Das Format wurde am Anfang der Menscheit von Amerikanern entwickelt und hat deshalb sämtliche Schwächen, die damit einhergehen. Denn die Menscheit spricht englisch und verschiedene Zeichensätze sind unnötiger Mumpitz. Man will auch nie wissen, in welchem Bezug die Geometrien zueinander stehen, und als Attribute nimmt man am besten irgendwelche Codes, damit man alles in kryptischen README's nachschlagen muss.
Frank, der Shapefiles für die Schweinegrippe der modernen Geographie hält
Verfasst: Montag 6. Juli 2009, 13:19
von tco95ttocs
besser hät ich das auch nicht erklären können
