Overpass-API icon indicating copy to clipboard operation
Overpass-API copied to clipboard

out:csv doesn't escape delimiter characters in values

Open ttomasz opened this issue 4 years ago • 2 comments

Option out:csv doesn't properly escape delimiter characters.

If an object contains e.g. tab character in the name and the delimiter is tab you won't get quotes around the field value as expected.

Example query:

[out:csv(::id, name, leisure)][timeout:900];
(
  way(831409355);
);
out body;

Overpass Turbo link which yields:

@id	name	leisure
831409355	Santuario de la Naturaleza 	Isla Kaikué	nature_reserve

2 tabs in header, 3 in row response should be:

@id	name	leisure
831409355	"Santuario de la Naturaleza 	Isla Kaikué"	nature_reserve

ttomasz avatar Jan 27 '21 23:01 ttomasz

Duplicate of #175

mmd-osm avatar Jan 28 '21 06:01 mmd-osm

Shouldn't the escape character itself be handled here, e.g. if separator is \t use quotes for string to prevent broken csv files?

https://github.com/drolbr/Overpass-API/blob/38092640e457cc02fed5b8b0d16ed38e43490e1b/src/overpass_api/output_formats/output_csv.cc#L38

ronmacro avatar Mar 04 '22 19:03 ronmacro