关于引用可打印编码
引用可打印(Quoted-Printable)是一种内容传输编码,它使用可打印的ASCII字符通过7位数据路径传输8位数据,或用于不支持8位的系统。它常用于电子邮件系统,用于发送带有国际字符的邮件。
引用可打印编码的常见用途
- 带有国际字符的电子邮件正文(MIME编码)
- 通过传统系统传输带有特殊字符的文本
- 使二进制数据在文本编辑器中可读和可编辑
- 非ASCII字符的电子邮件标题(稍微不同的格式)
- 在电子邮件消息中保留文本格式
引用可打印编码的工作原理
引用可打印编码使用ASCII可打印字符(即字符代码32-126)来表示国际字符和二进制数据。它通过以下方式工作:
- 可打印的ASCII字符(包括空格,但不包括=号)按原样保留
- 等号(=)用作转义字符,后跟字符的十六进制ASCII值
- 换行符编码为"=0D=0A"
- 行尾的空格编码为"=20",以防止邮件传输时被截断
- 长行(通常超过76个字符)使用软换行("="作为行尾)分割
编码规则
- 可打印ASCII字符(ASCII码33-126,除了61)直接表示
- 空格(ASCII码32)可以直接表示,但不能出现在行尾
- 其他字符编码为=后跟其十六进制ASCII码的两个字符(例如,á编码为=E1)
- 软换行用于保持行长不超过76个字符
与Base64的比较
引用可打印编码和Base64都是用于相似目的的内容传输编码,但有一些关键区别:
- 引用可打印编码对于主要包含ASCII文本的数据更有效
- Base64对于二进制数据(如图像)更有效
- 引用可打印编码的输出在原始格式中可读,而Base64不可读
- 引用可打印编码行长度有限(通常为76个字符)
- Base64扩展约33%,而引用可打印编码的扩展取决于内容
示例
原始文本 | 引用可打印编码 |
---|---|
Hello, World! | Hello, World! |
你好,世界! | =E4=BD=A0=E5=A5=BD=EF=BC=8C=E4=B8=96=E7=95=8C=EF=BC=81 |
line1 line2 | line1=0D=0Aline2 |