Lotus notes 内容传输编码:无-如何解码内容?

Lotus notes 内容传输编码:无-如何解码内容?,lotus-notes,mime,lotusscript,Lotus Notes,Mime,Lotusscript,我使用lotusnotesnotemeentity解析和转换电子邮件。NotesMIMEEntity有一个属性“Encoding”,它应该为我提供当前消息的编码。 通常情况下,这工作得很好,但对于某些消息,我得到(有效)结果“无”或1725 是否有一个默认的编码,我可以用来解码这样的消息,如引用打印?如何确定邮件的格式 我尝试了相关的RFC,但无法获得任何明确的信息。做一个启发式的方法,这真的有必要吗 非常感谢您的帮助。对于普通SMTP,它将是默认的内容传输编码。 具体来说,要将引用的可打印文件

我使用lotusnotesnotemeentity解析和转换电子邮件。NotesMIMEEntity有一个属性“Encoding”,它应该为我提供当前消息的编码。 通常情况下,这工作得很好,但对于某些消息,我得到(有效)结果“无”或1725

是否有一个默认的编码,我可以用来解码这样的消息,如引用打印?如何确定邮件的格式

我尝试了相关的RFC,但无法获得任何明确的信息。做一个启发式的方法,这真的有必要吗


非常感谢您的帮助。

对于普通SMTP,它将是默认的内容传输编码。 具体来说,要将引用的可打印文件编码为8bit,您可以使用以下PHP函数:

string quoted_printable_decode ( string $str )

如果返回的是ENC_NONE(1725),则表明发送软件忽略了内容传输编码头,或者以某种方式使其无法读取

考虑到这一点,您要么必须假设它根本没有编码,要么必须假设发送端可能真的对它进行了编码,但忘记了设置报头。在后一种情况下,您可能想尝试猜测它是什么,即启发式方法。对于您正在处理的消息,这种情况真的很可能吗?我不能替你回答这个问题。我也无法回答你是否真的需要知道编码。这取决于您的需求以及您试图对数据做什么。(例如,如果要求您的Lotus Notes用户必须准确地看到未使用Lotus Notes的其他人是如何看到消息的,那么问题是其他人看到的内容将取决于他们使用的软件所做的假设!您无法真正知道!)

坦率地说,除非有人专门向我展示了一条经过编码但内容传输编码头不好的消息,并且还设法提出了一个合理的理由,说明软件应该尝试修复发送端被破坏的消息,否则我只会使用前一种解释


顺便说一句:记住,7位、8位和二进制都意味着数据没有编码。它们之间的区别只是对接收系统的一个“提示”,即如果数据通过不同的方法重新传输,则可能需要对其进行编码。但是,在所有这些情况下,正确的做法是复制数据而不应用任何转换(当然,除非您收到8位数据,但您是在7位环境中运行的)。

感谢Richard的回答。是的,我必须获得消息的解码内容,才能将其传输到另一个非Notes系统。是的,我已经收到了没有指定任何编码的消息,但是内容是可打印的。似乎我必须采用启发式方法。正如@Yosi的回答所暗示的那样,规范说明
7bit
是默认的uf,没有指定编码。