当前位置: 首页 > 编程笔记 >

使用Python编码和解码MIME引用可打印数据

尹凌龙
2023-03-14
本文向大家介绍使用Python编码和解码MIME引用可打印数据,包括了使用Python编码和解码MIME引用可打印数据的使用技巧和注意事项,需要的朋友参考一下

很多时候,我们需要处理不总是具有常规ASCII字符的数据。例如,使用英语以外的其他语言的电子邮件。Python具有通过使用基于MIME(多用途Internet邮件扩展)的模块来处理此类字符的机制。在本文中,我们将看到如何在电子邮件或其他直接输入中解码此类字符。

使用电子邮件套餐

电子邮件软件包具有mime和charset模块,它们可以执行编码和解码工作,如下例所示。我们已接收了包含Unicode字符的电子邮件,然后将其编码为utf-8。

示例

import email.mime, email.mime.nonmultipart, email.charset
msg=email.mime.nonmultipart.MIMENonMultipart('text', 'plain', charset='utf-8')

#构造一个新的字符集
cs=email.charset.Charset('utf-8')
cs.body_encoding = email.charset.QP

# 使用新的字符集设置内容
msg.set_payload(u'This is the text containing ünicöde', charset=cs)
print(msg)

运行上面的代码给我们以下结果-

输出结果

Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

This is the text containing =C3=BCnic=C3=B6de

使用quopri

此python模块执行带引号的可打印传输编码和解码。带引号的可打印编码是为不可打印字符相对较少的数据而设计的。在下面的示例中,我们看到了如何使用非常规ASCII字符编码和解码字符串。

示例

import quopri
str1 = 'äé'
#encoded = quopri.encodestring('äé'.encode('utf-8'))
encoded = quopri.encodestring(str1.encode('utf-8'))
print(encoded)

str2 = '=C3=A4=C3=A9'
decoded_string = quopri.decodestring(str2)
print(decoded_string.decode('utf-8'))

运行上面的代码给我们以下结果-

输出结果

b'=C3=A4=C3=A9'
äé

 类似资料:
  • 本文向大家介绍使用Python xdrlib编码和解码XDR数据,包括了使用Python xdrlib编码和解码XDR数据的使用技巧和注意事项,需要的朋友参考一下 外部数据表示(XDR)的编码器和解码器。当我们在不同的外部源之间传输数据时,这是常用的格式。它对于创建和传输复杂的数据结构很有用。XDR提供与OSI表示层关联的服务。 在下面的程序中,我们看到如何使用xdrlib模块打包和解压缩数据。

  • 问题内容: 我正在寻找一种在Java中编码字符串的方法,就像php的本机函数一样。 我试图使用JavaMails的MimeUtility库。但是我无法使该方法起作用,因为它采用OutputStream作为输入而不是字符串(我使用该函数转换了字符串)并输出了无法返回字符串的内容(我是Java noob :) 谁能给我提示如何编写将字符串转换为OutputStream并在编码后将结果输出为String

  • 目前,该电子邮件显示了有关MimeBodyPart的以下标题: 标题部分应显示以下内容: 下面是我如何尝试强制引用可打印的内容: 如何强制内容传输编码可引用打印?我正在连接我的gmail邮件服务器idk,如果这有什么区别的话。也许这个标题会被谷歌覆盖。

  • 问题内容: 好的,所以我要把握机会,这里的某个人以前使用过zxing。我正在开发Java应用程序,它需要做的一件事是将字节数据数组编码为QR码,然后在以后对其进行解码。 这是我的编码器外观的示例: 此代码中的开始字节数组仅用于对其进行测试。实际的字节数据将有所不同。 这是我的解码器的外观: 是一种将字节数组转换为十六进制字符串的方法。 当我尝试同时运行这两个代码块时,输出如下: 显然,文本已被编码

  • 这是我的源代码 但是结果条形码没有显示出来,是不是漏了什么 请帮帮我 但当我尝试时,还是得到了同样的结果

  • 问题内容: 我有一个像这样的字符串: 我想加密要在干净URL中使用的字符串A。像这样的东西: 给定字符串A,python中是否有编码API,它返回字符串B?给定字符串B,python中是否有解码API,它返回字符串A? 问题答案: 进行编码/解码的一种方法是使用包base64,例如: 是您要找的东西吗?对于您的特殊情况,您将获得: 输入:12234_1_Hello’World_34433_22ac