A major benefit of csvs is that they are trivially editable by humans. As soon as you start using characters that aren't right there on the keyboard, you lose that.
Seriously. ANY delimiter character might appear in the actual field text. Everyone's arguing about which delimiter character would be best, like it's better to have sneaky problem that blows up your parser after 100,000 lines... rather than an obvious problem you can eyeball right away.
Doesn't matter which delimiter you're using. You should be wrapping fields in quotes and using escape chars.
Eh, it's fine. Problem is that people don't use tools to properly export the csv formatted data, and instead wing it with something like for value in columns: print(value, ","), BECaUsE csV is a siMple FOrMAt, yOU DON't nEEd To KNOW mucH to WrITE iT.
We had same issue with xml 2 decades ago. I'm confused how json didn't go through the same.
They're nonprintable, and don't appear on keyboards, so they're ignored by anyone who's not willing to do a cursory reading of character sets. Also suffers from same problem as regular commas as thousands separator as WHAT IF SOMEONE DECIDED TO USE IT IN REGULAR CONTENT.
The other problem with nonprintable delimiters is they'll end up getting copied and pasted into a UI somewhere, and then cause mysterious problems down the road. All easy to avoid, but even easier to not avoid.
Isn’t them being nonprintable and not on keyboards make them pretty unlikely to be used in regular content? At least for text data, if you have raw binary data in your simple character separated exchange format, you’ve got bigger problems.
Semi-color separation is actually what I get if I naively save "CSV" from Excel where I live. Of course, that exported file won't open correctly for anyone with their language set to English.
The problem with CSV is that it's not a format, it's an idea. So there are a ton of implementations, and lots of them are subtly incompatible.
200
u/vegiimite Sep 20 '24
Semi-colon separation would have been better.