电子邮件地址 dsv 的安全分隔符

Safe delimiter for dsv of email addresses

我需要 use/store 电子邮件地址的分隔符分隔值字符串(不是 csv)。我需要选择一个安全的分隔符。

例如bar@foo.com,baz@foo.com, - 此处为逗号,例如不安全,因为它在电子邮件地址内有效。

似乎几乎所有 is allowed in an email address, especially now with internationalized 电子邮件地址。

什么是安全的定界符,可以避免因为特殊情况而跳过箍?我在 the RFC 中找不到明显无效的字符(但是有很多电子邮件相关的相关 RFC,所以我不确定要参考哪个)。

Where/how 你会存储字符串吗?分隔符的用途是什么?

您可以使用不可见的 ascii 字符,例如 CR (Ascii 13) 或 Tab (Ascii 9)。

我最初使用 \ 因为这是一个转义字符,但是如果转义则允许使用。 @MatWalker 的回答推荐了 CR 或 LF 等内容,但如果它们被转义,这些内容也是允许的。

转义、替换和取消转义有点复杂。所以现在我正在使用控制字符 STX(即 "Start of Text",十进制 2)。

尽管 RFC 没有提及(据我所见)控制字符是否为 valid/invalid,但似乎没有任何东西使它成为一个糟糕的选择。它确实说控制字符是 "discouraged",但不禁止 header 字段。