千家信息网

python关于Quoted-printable编码详解和quopri库怎么用

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,python关于Quoted-printable编码详解和quopri库怎么用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。之前看到
千家信息网最后更新 2025年11月11日python关于Quoted-printable编码详解和quopri库怎么用

python关于Quoted-printable编码详解和quopri库怎么用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

之前看到群友这样一个问题:

大概就是调用网络接口得到的数据是如下形式:

text = """=E5=9B=A0=E4=B8=BA=E4=B8=81=E4=BF=8A=E6=99=96=E5=8F=AA=E8=B7=9F=E7=9D=80=
=E9=BA=A6=E8=BF=AA=E5=B0=B1=E4=B8=8D=E5=8F=AF=E8=83=BD=E9=82=A3=E5=88=B0=
=E6=80=BB=E5=86=A0=E5=86=9B=E6=88=92=E6=8C=87=EF=BC=8C=E8=80=83=E8=99=91=
=E5=88=B0=E6=8A=A4=E7=90=83=E9=97=AE=E9=A2=98=EF=BC=8C=E5=A6=82=E6=9E=9C=
=E7=94=A8=E9=BA=A6=E8=BF=AA=E6=8D=A2=E4=BA=A8=E5=88=A9=E7=9A=84=E8=AF=9D=
=E8=AF=B4=E4=B8=8D=E5=AE=9A=E5=B0=B1=E8=A1=8C=EF=BC=8C=E5=BD=93=E7=84=B6=
=E8=AF=B8=E8=91=9B=E5=AD=94=E6=98=8E=E8=BF=99=E4=B8=AA=E8=80=81=E7=8B=90=
=E7=8B=B8=E8=82=AF=E5=AE=9A=E6=98=AF=E7=95=A5=E6=87=82=E8=BF=99=E4=BB=B6=
=E4=BA=8B=E7=9A=84=EF=BC=8C=E4=BB=96=E7=AC=AC=E4=B8=80=E4=B8=AA=E4=B8=8D=
=E7=AD=94=E5=BA=94=EF=BC=8C=E5=B0=B1=E7=AE=97=E4=BB=96=E7=AD=94=E5=BA=94=
=E4=BA=86=EF=BC=8C=E7=BC=9D=E5=B0=8F=E8=82=9B=E8=83=BD=E7=AD=94=E5=BA=94=
=E5=90=97=EF=BC=9F=E6=89=80=E4=BB=A5=E8=BF=99=E6=95=B4=E4=BB=B6=E4=BA=8B=
=E6=83=85=E7=9A=84=E4=BA=AE=E7=82=B9=E5=B0=B1=E5=9C=A8=E4=BA=8E=E7=A7=A6=
=E5=A5=8B"""

其实这是Quoted-Printable Content-Transfer-Encoding编码出来的文本,这种编码的目的是为了防止文字传输时编码格式被修改,参看:https://www.freesoft.org/CIE/RFC/1521/6.htm

对于这种编码形式,python内置库提供了quopri能够解码上述文本:

import quopriresult = quopri.decodestring(text).decode("u8")result

'因为丁俊晖只跟着麦迪就不可能那到总冠军戒指,考虑到护球问题,如果用麦迪换亨利的话说不定就行,当然诸葛孔明这个老狐狸肯定是略懂这件事的,他第一个不答应,就算他答应了,缝小肛能答应吗?所以这整件事情的亮点就在于秦奋'

关于quopri模块可参考:https://docs.python.org/zh-cn/3/library/quopri.html

也就四个方法:

下面再测试一下编码:

text = "测试 Quoted-Printable \t编码"quopri.encodestring(text.encode("u8"))
b'=E6=B5=8B=E8=AF=95 Quoted-Printable \t=E7=BC=96=E7=A0=81'

其中quotetabs参数表示是否对空格和制表符编码,默认不编码。
我们测试一下对空格和制表符编码:

quopri.encodestring(text.encode("u8"), quotetabs=True)
b'=E6=B5=8B=E8=AF=95=20Quoted-Printable=20=09=E7=BC=96=E7=A0=81'

可以看到空格和制表符分别被转换成为=20=09

header参数则控制了空格是否被编码为下划线:

quopri.encodestring(text.encode("u8"), header=True)
b'=E6=B5=8B=E8=AF=95_Quoted-Printable_\t=E7=BC=96=E7=A0=81'

⚠️注意:当quotetabs参数设置为True时,header参数则无效。

decode和encode与上述方法的区别在于是对流对象进行操作。

关于python关于Quoted-printable编码详解和quopri库怎么用问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

编码 问题 参数 空格 制表符 方法 制表 测试 形式 文本 更多 麦迪 帮助 解答 易行 简单易行 下划线 事情 亮点 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 新型电力系统网络安全保护需求 中国历史影响力人物数据库 木鱼跳跳网络技术有限公司 软件开发岗位知识与能力要求 服务器更改扩展屏的快捷键 马桶c玩的德国服务器 嵩明上门软件开发市场价 管家婆软件云服务器报价 内蒙古潮流软件开发服务标准 苹果网络安全负责人是谁 兼职安卓软件开发 博思软件软件开发招聘 为何要定义瀑布式软件开发 博图软件开发环境 手机文件服务器不存在什么意思 关于软件开发中的开放 数据库与excel 社会发展对于网络技术的影响 今天有哪些游戏的服务器没有被关 zuche数据库的设计 陈义华入驻行业数据库 参与赌博软件开发怎么处罚 服务器在电脑上能不能使用 数据库设计的两个方法 腾讯视频服务器 云服务 zao服务器安全吗 关于软件开发中的开放 美国2021年网络安全报告 数据库连接重置 数据库营销案例ppt
0