osmfilter - Probleme mit Umlauten

Moin !

kann es sein das osmfilter bei --drops-tags Probleme mit Umlauten hat?

Bsp

name=Klärwerk

Wird nicht gefiltert - ist das Tag in den Daten mit ae und der Filter entsprechend, dann ist ok!

Win7 64bit utf8 ohne bom

Gruß Jan (smarty)

Hallo Jan,

bist du sicher, dass das “ä” korrekt als UTF-8 ans Programm übergeben wird? Es besteht aus zwei Bytes, Kodierung 0xc3 0xa4.

Bei mir unter Linux klappt es. Hast du dir die Eingabe des Suchmusters mal in einem Hex-Editor angeschaut?

Grüße
Markus

Hi,

habe auch gerade mal in Win7 mit dem Beispiel aus dem Wiki getestet:

osmconvert bayern.osm.pbf -o=bayern.o5m
osmfilter bayern.o5m --keep=“admin_level=6 and name=Nürnberger\ Land” -o=nbg_boundaries.osm

Ergebnis:

<?xml version='1.0' encoding='UTF-8'?>

=> Klappt wohl nicht - getestet direkt von Kommandozeile + Batchfile mit UTF-8 Encoding ohne BOM.

Wenn ich nach name=Bad\ Kissingen suche geht’s aber. Umlaute scheinen also Probleme zu machen.

Das Beispiel klappt unter Linux.

wundert das wen? :wink:

Das heißt dann wohl: installier dir endlich mal eine Virtual Machine mit Ubuntu und einer gescheiten Datenbank :stuck_out_tongue:

Was ist BOM ?

BOM ist die Byte order mark → http://de.wikipedia.org/wiki/Byte_Order_Mark

Ist zwar in UTF-8 definiert, wird aber so gut wie nicht verwendet, weil sie in Byte-orientierter Übertragung eh ohne Sinn ist. Viele Programme – darunter wohl auch osmfilter – können damit auch nichts anfangen.

Jan:

Linux verwendet von Haus aus den ISO-genormten Zeichensatz UTF-8. Windows nutzt meines Wissens normalerweise weder das ebenfalls genormte ASCII-Format noch UTF-8, sondern ein Microsoft-eigenes Format. Bin mir da aber nicht so sicher, weil ich mich nicht so viel mit Windows beschäftige.

Bist du sicher, dass du UTF-8 verwendest?

Ich werde gleich mal prüfen, ob das Problem unter Wine ebenfalls auftritt. Vielleicht liegts ja doch an osmfilter, wer weiß das schon zu 100%? :slight_smile:

In der GUI nutzt Windows mittlerweile auch UTF (16?). Man kann Dateien anlegen, die z.B. Umlaute und russische Zeichen im Dateinamen enthalten.

In der Shell (cmd) ist standardmäßig allerdings der alte IBM Zeichensatz (ibm850) eingestellt.

chcp → 850

Christian

Ich hatte eben auch schonmal chcp 65001 für UTF-8 auf der Kommandozeile probiert, hat aber ebenfalls nicht funktioniert. Weiterhin ohne Erfolg: Umlaut als \c3\a4 angeben.

Dann hilft bei Windows wohl nur, die Parameter im UTF-8-Format in eine Datei zu schreiben und mit --parameter-file=… einzubinden. Das jedenfalls hat bei mir unter Wine geklappt:

–keep=
name=Klärwerk

Confirmed, danke! Das klappt so auch unter Win7:

osmfilter bayern.o5m --parameter-file=parmfile.txt -o=nbg_boundaries.osm

parmfile.txt (in utf-8 ohne bom):


--keep=
admin_level=6
name=Nürnberger\ Land

Eventuell klappt: chcp 1252 (entspricht iso-8859-1) und die Umlaute in ISO einzugeben.

Wobei man dann natürlich eine kompatible Schriftart z.B. LucidaConsole einstellen sollte.

Hi

Utf-8 ohne bom

+1

Sollten wir ins Wiki mit aufnehmen.

Gruß Jan

wie heißt es so schön: “wir haben die Lösung für die Probleme, die sie nicht hätten, wenn sie nicht unsere Produkte einsetzen würden”

Gruß,
Walter