1 为什么MIME要有编码转换
在MIME总结这篇经验中,总结了MIME相较于RFC 822的扩展功能,其中提到了RFC 822的缺陷:非英语字符都不能在电子邮件中使用;2)电子邮件中不能插入二进制文件(如图片);3)电子邮件不能有附件。
因此出现了编码转换,目的是为了满足电子邮件中不能直接使用非ASCII码字符的规定,同时可以做到:所有的二进制文件,都可以因此转化为可打印的文本编码,使用文本软件进行编辑
能够对文本进行简单的加密
2 Quoted-printable编码方式
它主要用于ACSII文本中夹杂少量非ASCII码字符的情况,不适合于转换纯二进制文件。
它规定将每一个8位的字节,转换为3个字符。第一个字符是"="号,这是固定不变的。后面二个字符是二个十六进制数,分别代表了这个字节前四位和后四位的数值。
这里举两个例子
例如1,ASCII码中"换页键"(form feed)是12,二进制形式是00001100,写成十六进制就是0C,因此它的编码值为"=0C"。
例如2,"="号的ASCII值是61,二进制形式是00111101,因为它的编码值是"=3D"。
除了可打印的ASCII码以外,所有其他字符都必须用这种方式进行转换。所有可打印的ASCII码字符(十进制值从33到126)都保持原样不变,"="(十进制值61)除外。
3 Base64
所谓Base64,就是说选出64个字符----小写字母a-z、大写字母A-Z