Tomas By Asked: 2021-01-21 14:09:18 +0800 CST2021-01-21 14:09:18 +0800 CST 2021-01-21 14:09:18 +0800 CST 当 `=?iso8859-1?B?`...`?=` 出现在电子邮件地址中时,发生了什么? 772 我在电子邮件地址中看到类似=?iso8859-1?B?...的内容。?=我假设这是在一些 RFC 中定义的。谁能解释一下在哪里?当一切都是Unicode时,这应该已经过时了吗? email address 2 个回答 Voted Best Answer user1686 2021-01-21T14:33:29+08:002021-01-21T14:33:29+08:00 这是在 MIME 格式电子邮件(即基本上所有这些)中使用的 RFC 2047“编码字”格式,用于将 8 位数据适合 7 位 ASCII。它与 HTTP GET 或查询字符串无关。 Encoded-word 之于 header 就像 Content-Transfer-Encoding 之于消息体一样——两者都使用 Base64 或 Quoted-Printable 格式将 8 位数据转换为 7 位 ASCII 数据,并且两者都是消息中的正常出现。 然而,通常你不应该在你的邮件应用程序中看到这样的编码文本(除了通过查看消息源)——它应该总是在 UI 中显示解码。如果邮件应用程序向您显示原始编码字,则很可能无法正确解码(例如,发件人指定了错误的字符集)。 这种格式并没有被 Unicode 淘汰;它完成了不同的任务,并且同样适用于所有字符集。事实上,您经常会看到 Unicode 文本被编码为=?utf-8?.... 但是,它可能会被 SMTP“8BITMIME”扩展名淘汰。像许多电子邮件一样,它来自一些网络不是“8 位干净”的时代,并且可能会丢弃或破坏高位的价值——这对于运行在 TCP/IP 上的现代 SMTP 软件不再适用。 Yorik 2021-01-21T14:22:11+08:002021-01-21T14:22:11+08:00 最有可能的是,这是一封由软件生成的电子邮件,其中包含错误配置的插件或写得不好的插件。“=”和“?” 可能表明 GET 参数正在某处的函数中传递(并被误解/排列错误)。 参见例如:(https://magento.stackexchange.com/questions/37663/plugin-email-sender-incorrectly-uses-iso-8859-1)其中OP引用了基于错误的类似修改。 来自:=?iso-8859-1?Q? (...) = 地址@example.com
这是在 MIME 格式电子邮件(即基本上所有这些)中使用的 RFC 2047“编码字”格式,用于将 8 位数据适合 7 位 ASCII。它与 HTTP GET 或查询字符串无关。
Encoded-word 之于 header 就像 Content-Transfer-Encoding 之于消息体一样——两者都使用 Base64 或 Quoted-Printable 格式将 8 位数据转换为 7 位 ASCII 数据,并且两者都是消息中的正常出现。
然而,通常你不应该在你的邮件应用程序中看到这样的编码文本(除了通过查看消息源)——它应该总是在 UI 中显示解码。如果邮件应用程序向您显示原始编码字,则很可能无法正确解码(例如,发件人指定了错误的字符集)。
这种格式并没有被 Unicode 淘汰;它完成了不同的任务,并且同样适用于所有字符集。事实上,您经常会看到 Unicode 文本被编码为
=?utf-8?...
.但是,它可能会被 SMTP“8BITMIME”扩展名淘汰。像许多电子邮件一样,它来自一些网络不是“8 位干净”的时代,并且可能会丢弃或破坏高位的价值——这对于运行在 TCP/IP 上的现代 SMTP 软件不再适用。
最有可能的是,这是一封由软件生成的电子邮件,其中包含错误配置的插件或写得不好的插件。“=”和“?” 可能表明 GET 参数正在某处的函数中传递(并被误解/排列错误)。
参见例如:(https://magento.stackexchange.com/questions/37663/plugin-email-sender-incorrectly-uses-iso-8859-1)其中OP引用了基于错误的类似修改。