You said "printable", but that can include characters such as a tab (0x09) or form feed (0x0c). I almost always choose tabs rather than commas for delimited files, since commas can sometimes appear in text.
(Interestingly enough the ascii table has characters GS (0x1D), RS (0x1E), and US (0x1F) for group, record, and unit separators, whatever those are/were.)
If by "printable" you mean a character that a user could recognize and easily type in, I would go for the pipe | symbol first, with a few other weird characters (@
or ~
or ^
or \
, or backtick which I can't seem to enter here) as a possibility. These characters +=!$%&*()-'":;<>,.?/
seem like they would be more likely to occur in user input. As for underscore _
and hash #
and the brackets {}[]
I don't know.