RFC1521文档中关于QP和BASE64编码的定义

RFC1521文档中关于QP和BASE64编码的定义

 

1、           关于QP(Quoted-Printable)编码方法的描述:

规则1:除了换行符,其它任何8位长度的字节必须被表示成一个“=”号加上高四位的十六进制数和低四位的十六进制数,十六进制数是用“0123456789ABCDEF”的ASCII字符码表示,其中“ABCDEF”都必须是大写;

规则2:当8位长度的字节值在3366(包括3360)62126(包括62126)之间时,直接用该数据对应的ASCII码来表示;

规则3:当8位长度的字节值是932时,用该数据对应的ASCII(9TAB(HT)32SPACE)来表示,但若是出现在行尾则必须按规则1进行转换;

规则4:对于CRLF换行符必须用“=0D=0A”来代替;

规则5QP编码每行不得超过76个字符(不包含最后的“/r/n”两个字符),否则必须换行,换行方法是:在结尾处加上“=/r/n”;

其它:符号“-”不用进行QP编码,所以不要用“-”符号来表示实体之间的分界,最好用“=_”来代替,对于“!”#$[/]^’{|}~”这些字符必须按规则1进行转换。

2、          关于BASE64编码方法的描述:

编码方法:用“A…Za…z0…9+/”64个字符来表示6位长度的二进制数值,该数值从063依次对应从“A”至“/”的字符,编码时3个字节3个字节进行编码,每3个字节(24)以最高两位补0的形式分成四个字节,这样每个字节的值刚好能与“A…Za…z0…9+/”64个字符一一对应,当最后没有三个字节时,编码后则用”=“号补足四个字节。

BASE64编码每行不得超过76个字符(不包含最后的“/r/n”两个字符),否则必须换行,换行方法是:在结尾处加上“/r/n”;

BASE64编码中不得出现任何“A…Za…z0…9+/”64个字符以外的字符,否则则可视为错误码而把它丢弃。

 

你可能感兴趣的:(其它)