US (Unit Separator) is ASCII code point 31 (0x1F), Unicode U+001F. It is a C0 control character that delimited the smallest data elements within a record — the lowest tier in ASCII's four-level separator hierarchy: US (0x1F), RS (0x1E), GS (0x1D), FS (0x1C). On early batch systems, 0x1F separated individual fields the way a comma or tab would in modern CSV or TSV files. It still appears in GS1 barcode data structures and some Unix pipeline tooling where a delimiter is needed that will never collide with printable text. UTF-8 encodes it as the single byte 0x1F; Unicode classifies it as Cc (Control) with the alias UNIT SEPARATOR.
char msg[] = "A\x1FB\x1FC"; // US (0x1F) delimits unitsfor (char *p = msg; *p; p++) if (*p == 0x1F) *p = '|'; // visualize separators/* msg is now "A|B|C" for debugging */
US (ASCII 31) is the finest-grained delimiter in the ASCII separator hierarchy. It separates individual fields within a record — like commas in a CSV row, but using an invisible, unambiguous control byte instead of a printable character.
US (0x1F) virtually never appears in real data, so you never need quoting or escaping rules. Commas require quoting fields that contain commas; tabs break when fields contain tabs. US solves the 'delimiter collision' problem that makes CSV parsing so painful.
Yes. Some Unix tools, logging systems, and data pipelines use US or RS/US as delimiters for exactly the collision-avoidance benefit. The AWK programming language can use any character as a field separator, making US a viable choice for structured data.
Ctrl+_ (Ctrl+Shift+Minus) generates US (ASCII 31) in most terminals. In code, use the escape sequence \x1f. In practice, US is almost always generated programmatically rather than typed by hand.