Show HN: Comma Separated Values (CSV) to Unicode Separated Values (USV)
Overview of USV Proposal
- USV (Unicode Separated Values) is a CSV-like text format using Unicode “control picture” symbols as separators:
- Unit, record, group, and file separators (␟ ␞ ␝ ␜).
- Escape and other modifiers (␛, ␗, ␖).
- Intended benefits: fewer escapes than CSV, explicit multi-level hierarchy (unit/record/group/file), and well-defined syntax with an IETF draft and proposed MIME type.
*Comparison with CSV and Existing SV Formats
- Many see CSV as “good enough,” with huge ecosystem support (databases, Excel, Unix tools, libraries).
- Complaints about CSV:
- Inconsistent “standard” and escaping rules.
- Locale issues (comma vs semicolon separators, decimal commas).
- Newlines allowed inside fields complicate parsing.
- Counterpoint: these are mostly tooling/abuse issues; CSV’s human-editability and ubiquity outweigh flaws.
- Several note ASV (ASCII separators 0x1C–0x1F) already exist and solve many escaping issues but lack editor support.
Unicode Control Pictures vs ASCII Control Characters
- USV uses the visible glyphs (U+241C–241F), not the actual control codes (U+001C–001F).
- Proponents: editors and copy/paste work more reliably with visible, letter-width symbols.
- Critics:
- These symbols are meant to represent control chars, not be them; this blurs semantics.
- Multi-byte delimiters require decoding before splitting.
- Symbols are tiny and hard to visually distinguish; many users would need custom fonts or editor tweaks anyway.
- Some find the visual equivalence to rendered ASV a “show-stopping” design flaw.
Readability, Editing, and Accessibility
- Disagreement whether USV is truly human-friendly:
- Some report mainstream editors (Emacs, etc.) render examples fine; others need to zoom heavily.
- Optional newlines in the spec initially made long single-line files, breaking line-based tools; the author later updated the converter to insert newlines.
- Accessibility:
- Claim that screen readers handle USV well; others test readers that do not announce the symbols.
Escaping, SYN, and Format Complexity
- There is an escape mechanism; critics argue this undermines “no escaping needed” claims and reproduces CSV-like complexity.
- Concerns about:
- Class-dependent escaping rules.
- Extra modifiers like SYN heartbeat and “ignore next char,” which create multiple byte-level encodings for the same logical document and complicate checksums and parsers.
- After feedback, the author indicates SYN will be removed and docs updated.
Adoption, Standardization, and Practicality
- Many doubt USV will gain traction without support from Excel/LibreOffice and major libraries.
- Some see it as “another standard” per the famous XKCD comic; suggestion is to instead:
- Use well-specified CSV (RFC 4180), TSV, JSON/JSONLines, or typed binary/tabular formats (Parquet, Avro, SQLite).
- Supporters argue editors and libraries could evolve, but critics see no compelling upside over existing text or binary formats.
Alternatives and Related Ideas
- Mentioned alternatives: ASV, RSV (using invalid UTF‑8 bytes as delimiters), SML, JSONLines, Postgres-style COPY TSV, emoji-separated values, and various custom schemes.
- Several argue that improving support for ASCII separators and better table modes in editors would be a cleaner path than introducing USV.