在python 3中使用win32api / com模块时,有没有办法解决unicode问题?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

在python 3中使用win32api / com模块时,有没有办法解决unicode问题?

2019-01-22 16:51:28 2561 1

我正在浏览收件箱中的电子邮件并检查特定的单词集。它适用于大多数电子邮件,但其中一些不解析。我查看了破碎的电子邮件。

print (msg.Body.encode('utf8'))
我的问题消息都以b'开头。像这样

b'xe6xa0xbcxe6xb5xb4xe3xb9xacxe6xa0xbcxe6x85xa5xe3xb9xa4xe0xa8x8dxe6xb4xbcxe7x91xa5xe2x81xa1xe7x91x
我认为这是强制python将字体读取为字节,但我不确定。在b之后的任何一种方式,无论我尝试什么编码,我都不会得到任何东西,除了垃圾文本。

我以前尝试过其他编码方法以及解码,但我只是得到了大量的属性错误。

import win32api
import win32com.client
import datetime
import os
import time

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
dater = datetime.date.today() - datetime.timedelta(days = 1)
dater = str(dater.strftime("%m-%d-%Y"))
print (dater)
#for folders in outlook.folders:
# print(folders)

Receipt = outlook.folders[8]

print(Receipt)

Ritems = Receipt.folders["Inbox"]

Rmessage = Ritems.items

for msg in Rmessage:

if (msg.Class == 46 and msg.CreationTime.strftime("%m-%d-%Y") == dater):
    print (msg.CreationTime)
    print (msg.Subject)
    print (msg.Body.encode('utf8'))

    print ('..............................')

最终的结果是在控制台中打印出消息,或者至少让Python有一种方式来阅读它,这样我就可以找到我正在寻找的文本。

取消 提交回答
全部回答(1)
  • 一码平川MACHEL
    2019-07-17 23:26:20

    问题中发布的字节文字是有效的UTF-8。前两个字符是来自CJK统一表意文字块U + 683C和U + 6D74,U + 4E00 - U + 9FFF。

    由于您不知道源代码编码,因此无法完全确定它,但很可能电子邮件正文只是以UTF-8编码的汉字符(确定Python中文本的编码)。如果您无法正确查看UTF-8字符,则应检查终端或显示字符集。

    也就是说,你应该正确地获得角色表示的基础知识。随机编码或解码几乎无法解决任何问题。我建议你先阅读Spolsky对Unicode 的介绍,然后在Python中使用Unicode 转移到Batchelder。

    0 0
相关问答

1

回答

Python模块中urlrs.getcode()方法的作用是什么?

2021-11-12 14:50:28 148浏览量 回答数 1

1

回答

Python模块中urlrs.info()方法的作用是什么?

2021-11-12 14:44:58 138浏览量 回答数 1

1

回答

Python模块中urlrs.geturl()方法的作用是什么?

2021-11-12 14:50:28 175浏览量 回答数 1

1

回答

Python模块中urlrs.readlines()方法的作用是什么?

2021-11-12 14:54:21 107浏览量 回答数 1

1

回答

Python模块中urllib.urlencode(query[,doseq])方法的作用是什么?

2021-11-12 14:23:08 188浏览量 回答数 1

1

回答

Python模块中str.rpartition(str)方法的作用是什么?

2021-11-12 14:07:24 148浏览量 回答数 1

1

回答

Python模块中str.replace(str1,str2,num)方法的作用是什么?

2021-11-12 14:09:42 187浏览量 回答数 1

1

回答

Python模块中str.partition(substr)方法的作用是什么?

2021-11-12 14:08:49 171浏览量 回答数 1

1

回答

Python模块中str.lstrip()方法的作用是什么?

2021-11-12 14:19:15 117浏览量 回答数 1

1

回答

Python模块中的os.path.basename(filename)方法的作用是什么?

2021-11-10 22:38:39 170浏览量 回答数 1
文章
问答
问答排行榜
最热
最新
相关电子书
更多
Python系列直播第一讲——Python中的一切皆对象
立即下载
Python 脚本速查手册
立即下载
Python第五讲——关于爬虫如何做js逆向的思路
立即下载