【发布时间】:2017-06-13 07:10:43
【问题描述】:
我正在尝试创建多个与电子邮件地址关联的 html 文件。但由于“@”不能在文件名中使用,并且为了避免混淆,我尝试将其替换为电子邮件地址中通常不存在的字符。
有什么想法吗?
谢谢!
【问题讨论】:
-
您也可以使用 %64 之类的编码方案
标签: email special-characters filenames email-validation email-address
我正在尝试创建多个与电子邮件地址关联的 html 文件。但由于“@”不能在文件名中使用,并且为了避免混淆,我尝试将其替换为电子邮件地址中通常不存在的字符。
有什么想法吗?
谢谢!
【问题讨论】:
标签: email special-characters filenames email-validation email-address
电子邮件地址中不允许使用逗号和分号,但大多数文件系统的文件名中都不允许使用逗号和分号。
【讨论】:
我相信 '~' 用于此目的。
【讨论】:
根据这里的链接,只要特殊字符不在开头或结尾,几乎所有 ASCII 字符都可以在电子邮件地址中使用。
【讨论】:
任何一个,(逗号); (分号)(尖括号)[](方括号)或“(双引号)应该适用于大多数情况。
由于带引号的字符串中允许使用这些字符,因此您可以将“@”替换为无效的序列,例如连续三个双引号。
根据the RFC
在带引号的字符串中,除了双引号和反斜杠本身之外,任何 ASCII 图形或空格都可以不加黑斜线引用。
你可以有一个电子邮件 abc."~~~".def@rst.xyz。但是你不能有 abc.""".def@rst.xyz;它必须是 abc.""".def@rst.xyz。因此,您可以安全地使用 """ 代替文件名中的 @。
但是,RFC 也说
虽然上面对 Local-part 的定义相对宽松, 为获得最大的互操作性,需要接收邮件的主机 应该避免定义本地部分需要的邮箱(或 使用)带引号的字符串形式或本地部分是大小写的地方- 敏感。
应该意思是“……那个 在特定情况下可能存在正当理由 特定的行为是可以接受的,甚至是有用的,但完整的 应了解影响并仔细权衡案件 在实施之前……”RFC2119
所以,虽然“””会起作用,但您会看到带有引号的电子邮件是否值得为它设计的麻烦?如果不是,那么使用单个字符之一。
【讨论】: