引用-可打印可翻译为“可打印字符参考代码”和“使用可打印字符的代码”。我们在收到邮件和查看信件的原始信息时,经常会看到这种类型的代码!
很多时候,我们可以在邮件头看到这个代码!内容-传输-编码:引用-可打印
它是多用途互联网邮件扩展(MIME)的一个实现。MIME是一种互联网标准,它扩展了电子邮件标准,并努力使其支持各种格式的非ASCII字符、二进制附件和其他邮件消息。目前很多http协议都使用MIME框架!引号-可打印意味着使用一些可打印的通用字符来表示一个字节(8位)中的所有非打印字符!
报价可打印的编码方法。
任何8位字节值都可以编码为3个字符:等号“=”后跟两个十六进制数字(09或af)表示该字节的值。例如,ASCII分页符(十进制值为12)可以表示为“=0C”,等号“=”(十进制值为61)必须表示为“=3D”。
所有可打印的ASCII字符(十进制值的范围是33到126)都可以直接用ASCII字符编码表示,但是等号“=”(十进制值是61)不能这样直接表示ASCII的水平制表符和空格字符,十进制字符是9和32。如果没有出现在行尾,可以直接用它的ASCII字符编码来表示。如果这两个字符出现在行尾,QP代码必须表示为“=09”(制表符)或“=20”(空格)。
如果数据包含有意义的行尾标记,则必须将其转换为ASCII回车(CR)换行符(LF)序列,并且既不能使用原始ASCII字符,也不能使用QP编码的“=”转义字符序列。相反,如果字节值13和10具有除行尾以外的其他含义,则它们必须被QP编码为=0D和=0A。
引用的可打印编码数据的每行长度不能超过76个字符。为了在不改变编码文本的情况下满足这一要求,在QP编码结果的每一行的末尾添加了一个软换行符,即在每一行的末尾添加了一个“=”,但它不会出现在解码文本中。
如果你相信真理=美,那么数学无疑是哲学中最美丽的分支。
如果你相信真理=3美,那么数学无疑是哲学中最美丽的分支。
编码有几个特定的限制,一些可打印的字符不需要编码。当然,如果你按照规范编码,也可以显示出来!所以编码:是自己简单实现的。
function quoted _ printable _ encode($ string){ return preg_replace('/[^rn]{73}[^=rn]{2}/',' $0=rn ',str_replace('% ','=',rawurlenode($ string));}一个功能就够了。转换完所有字符串后,URL encode %被“=”替换,然后在非73个连续字符后添加一个=rn。这是一个简单的实现方法!根据代码的详细描述,有一些空格、换行符和一些特殊字符不需要转换。但是,如果它们一起转换,就不会影响了!
很多时候,我们使用一些常见的字符来表示所有8位的其他非打印字符。这种传递,带引号的可打印编码,只是在将这个字节转换成十六进制后添加前缀!然后做一些特殊的字符处理!简单高效,使得编码广泛应用于邮件格式!好了,就这样。欢迎交流!