电子邮件和 ftp 文本消息之间的大小差异 - EOL 字符?

Posted

技术标签:

【中文标题】电子邮件和 ftp 文本消息之间的大小差异 - EOL 字符?【英文标题】:size difference between email and ftp text message - EOL characters? 【发布时间】:2010-09-17 18:19:52 【问题描述】:

我正在尝试通过 FTP 或电子邮件传递相同的消息,但保存的文件总是以不同的大小出现。消息的文字内容是一样的,但不可打印的字符一定要占不同的大小!

通过 FTP 传输文本文件时(以二进制模式防止 FTP 转换 EOL 字符),传递的文件大小为 7660 字节。

当我通过电子邮件传递消息(使用 smtp 发送,使用 POP3 检索)时,传递的消息大小(直接转储到新文件时)为 8043 字节。电子邮件作为纯文本电子邮件发送,并且消息包含整个电子邮件正文。 这是 383 字节的大小差异,行数是 385 行,这让我认为这两者是相关的……但尽我所能,我无法通过电子邮件收到相同的消息!

我尝试了几种在电子邮件消息数据上去除回车和换行的组合,但无济于事!

MIME 消息是否有不同的换行处理方式?

【问题讨论】:

【参考方案1】:

不是一个解决方案,但最好逐个字节地比较这两条消息,以确定究竟有什么区别。根据您所说,我同意这听起来像是一个行尾问题,但最好确定一下。

另外,如果您真的使用 FTP 来传输消息(这听起来有点奇怪,但没关系),您可能需要调查在 FTP 的二进制模式与它的 ascii/文本模式之间切换对结果的差异。

【讨论】:

是的,我尝试将 FTP 代码切换为使用 ascii,但没有任何区别。很可能是因为它从 Windows 服务器转到 Windows 机器,因此 EOL 字符保持不变。我想逐字节比较它们。有什么好工具可以在 Windows 上做到这一点?【参考方案2】:

在 SMTP 期间,您应该以 CR LF 结束每一行。如果您的原始电子邮件以换行符结束每一行,则在传输之后,邮件程序可能已将每个换行符转换为 CR LF,这将为每一行添加一个额外的字节。

另一方面,这可能是巧合。您是否查看过两端的邮件程序是否添加了额外的标题行,例如 From 行?

【讨论】:

我根本没有使用电子邮件的标题,我只是在接收邮件,提取邮件正文并将其保存到文件中,因此额外的标题不是问题

以上是关于电子邮件和 ftp 文本消息之间的大小差异 - EOL 字符?的主要内容,如果未能解决你的问题,请参考以下文章

输出图像到文本文件的差异

余弦计算相似度理解以及计算

在javascript中计算用户名和电子邮件之间的差异

如何修复chrome和firefox之间的字体大小差异

比较两个文本文件 - 并将差异保存到新文件

术语“长度”和“大小”之间是不是存在技术差异(当然是在编程中)? [复制]