Quoted-printable 编码介绍、Quoted-printable编码解码转换方法_其它综合

Quoted-printable 可译为“可打印字符引用编码”、“使用可打印字符的编码”,我们收邮件,查看信件原始信息,经常会看到这种类型的编码!

最多时候,我们在邮件头里面能够看到这样的编码!Content-Transfer-Encoding:quoted-printable

它是多用途互联网邮件扩展(MIME) 一种实现方式。其中MIME是一个互联网标准,它扩展了电子邮件标准,致力于使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。目前http协议中,很多采用MIME框架!quoted-printable 就是说用一些可打印常用字符,表示一个字节(8位)中所有非打印字符方法!

Quoted-printable编码方法

任何一个8位的字节值可编码为3个字符:一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值.例如,ASCII码换页符(十进制值为12)可以表示为”=0C”, 等号”=”(十进制值为61)必须表示为”=3D”. 除了可打印ASCII字符与换行符以外,所有字符必须表示为这种格式.

所有可打印ASCII字符(十进制值的范围为33到126)可用ASCII字符编码来直接表示, 但是等号”=”(十进制值为61)不可以这样直接表示.ASCII的水平制表符(tab)与空格符, 十进制为9和32, 如果不出现在行尾则可以用其ASCII字符编码直接表示。如果这两个字符出现在行尾,必须QP编码表示为”=09″ (tab)或”=20″ (space).

如果数据中包含有意义的行结束标志,必须转换为ASCII回车(CR)换行(LF)序列,既不能用原来的ASCII字符也不能用QP编码的”=”转义字符序列。 相反,如果字节值13与10有其它的不是行结束的含义,它们必须QP编码为=0D与=0A.

quoted-printable编码的数据的每行长度不能超过76个字符. 为满足此要求又不改变被编码文本,在QP编码结果的每行末尾加上软换行(soft line break). 即在每行末尾加上一个”=”, 但并不会出现在解码得到的文本中.

例如:If you believe that truth=beauty, then surely mathematics is the most beautiful branch of philosophy. 编码后结果是

If you believe that truth=3Dbeauty, then surely=20=
mathematics is the most beautiful branch of philosophy.

编码里面,有几个特定限定,一些可打印字符不用编码,当然如果你按照规范编码后,也一样可以显示的!因此自己简单自己实现该编码:

function quoted_printable_encode($string) {
  return preg_replace('/[^\r\n]{73}[^=\r\n]{2}/', "$0=\r\n", str_replace("%","=",
rawurlencode($string)));
}

一个函数就可以,将所有字符串urlencode转换后,%号替换为”=”号,然后对非\r\n超过73连续字符,后面加一个=\r\n。这个是简单实现方法! 按照该编码详细说明里面,有些空格、换行,还有一些特殊字符可以不用转换。不过一起转换了,也不会有影响!

很多时候,我们用些常见字符表示所有8位其它非打印字符,这种通过,Quoted-printable编码,只是对该字节转为16进制后,做简单增加前缀!然后做些特殊字符处理即可! 它的简单,及编码高效,也让该编码在邮件格式里面,得到了广泛使用!好了,就到这里,欢迎交流!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索编码
Quoted-printable
quoted printable解码、quoted printable编码、编码解码、视频编解码、视频编解码技术,以便于您获取更多的相关知识。

时间: 2024-10-25 18:36:31

Quoted-printable 编码介绍、Quoted-printable编码解码转换方法_其它综合的相关文章

UUencode 编码,UU编码介绍、UUencode编码转换原理与算法_其它综合

UUencode编码起先用在unix网络中,先是Unix系统下将二进制的资料借由uucp邮件系统传输的一个编码程式,也是一种二进制到文字的编码.不属于MIME编码中一员.它也是定义了用可打印字符表示二进制文字一种方法,并不是一种新的编码集合.主要解决,二进制字符在传输.存储中问题.它早期在电子邮件中使用较多,最近这些年来基本上被MIME 中Base64所取代了.E-mail中一般采用UU.MIME.BINHEX三种编码标准! 我想,了解下这种编码将二进制字符转换为可打印字符实现思路!对我们以后做

Base64 编码介绍、Base64编码转换原理与算法_其它综合

Base64编码,是我们程序开发中经常使用到的编码方法.它是一种基于用64个可打印字符来表示二进制数据的表示方法.它通常用作存储.传输一些二进制数据编码方法!也是MIME(多用途互联网邮件扩展,主要用作电子邮件标准)中一种可打印字符表示二进制数据的常见编码方法!它其实只是定义用可打印字符传输内容一种方法,并不会产生新的字符集!有时候,我们学习转换的思路后,我们其实也可以结合自己的实际需要,构造一些自己接口定义编码方式.好了,我们一起看看,它的转换思路吧! Base64实现转换原理 它是用64个可

XXencode 编码,XX编码介绍、XXencode编码转换原理与算法_其它综合

Xxencode编码,也是一个二进制字符转换为普通打印字符方法.跟UUencode编码原理方法很相似,唯独不同的是可打印字符不同.通个UUencode编码,我们知道它有个缺点就是,64个可打印字符中,有很多的特殊字符.而XXencode编码方法,对64个原字符有做规范.这里它有跟Base64类型了.都有指定可打印字符范围.及编号.Xxencode编码在上世纪后期,IBM大型机中得到很广泛的应用.现在逐渐被Base64编码转换方法所取代了. Xxencode编码原理 XXencode将输入文本以每

字符编码掠影:现代编码模型

Abstract 字符编码,在计算机导论中经常作为开门的前几个话题来讲,然而很多CS教材对这个话题基本都是走马观花地几页带过.导致了许多人对如此重要且基本的概念认识模糊不清.直到在实际编程中,尤其是遇到多语言.国际化的问题,被虐的死去活来之后才痛下决心去重新钻研.诸如此类极其基础却又容易被人忽视的的知识点还有:大小端表示,浮点数细节,正则表达式,日期时间处理等.本文是系列的第一篇,旨在阐明字符编码这个大坑中许多纠缠不清的概念. 基本概念 现代编码模型自底向上分为五个层次: 抽象字符表 ACR (

x264代码剖析(十六):核心算法之宏块编码中的量化编码

x264代码剖析(十六):核心算法之宏块编码中的量化编码           为了进一步节省图像的传输码率,需要对图像进行压缩,通常采用变换编码及量化来消除图像中的相关性以减少图像编码的动态范围.本文主要介绍量化的相关内容,并给出x264中量化编码的代码分析.   1.量化编码           量化过程就是根据图像的动态范围大小确定量化参数,既保留图像必要的细节,又可以减少码流.在图像编码中,变换编码和量化从原理上讲是两个独立的过程.但在H.264中,将两个过程中的乘法合二为一,并进一步采用

你不知道的 页面编码,浏览器选择编码,get,post各种乱码由来

原文:你不知道的 页面编码,浏览器选择编码,get,post各种乱码由来 asp.net页面编码和浏览器的选择编码 每个asp.net的朋友都知道,在新版本的visual studio,在没有任何设置的情况下,新建页面时的默认编码为utf-8 我们可以从两个地方可以看出: 第一:打开aspx页面,"文件"->"高级保存选项",如下图,可以看出编码为:Unicode(UTF-8带签名) 第二:找到aspx存放路径,用系统自带的文本编辑器打开,然后"文件

字符集和字符编码(Charset & Encoding)_其它综合

相信大家一定碰到过,打开某个网页,却显示一堆像乱码,如"бЇЯАзЪСЯ"."�????????"?还记得HTTP中的Accept-Charset.Accept-Encoding.Accept-Language.Content-Encoding.Content-Language等消息头字段?这些就是接下来我们要探讨的. 目录: 1.基础知识 2.常用字符集和字符编码2.1. ASCII字符集&编码2.2. GBXXXX字符集&编码2.3. BIG5字

把base64编码的后三位+/=换成_-~ 可以吗 求牛人庇护?????????????

问题描述 把base64编码的后三位+/=换成_-~ 可以吗 求牛人庇护????????????? 把base64编码的后三位+/=换成_-~ 可以吗 ?????????????????????????????????? 解决方案 不过你可以编解码之前先自己做转换 解决方案二: 不可以,base64只认识+/+,不认识_-~

unicode utf-8 gb18030 gb2312 gbk各种编码对比_其它综合

但是我这个的特点是追究原理,我在乎的事情都想弄明白,于是各个qq群依次发信息,没人理会.唉,郁闷.只好自己google it and teach myself .下面是详细介绍. 还有对各方求助没有人理会,我有些个人想法.现在的人已经很少有人去深究理论了,人们的观念是得过且过,人们通常只是知道什么,不知道为什么.对编程来说,个人认为这是很悲哀的事情,也是非常危险的事情.我想可能这也是中国的IT落后于美国的原因,我希望中国的编程人员能够好好想想了. 下面的东西是从网上查到的  Unicode 的编