【问题标题】:Message part size returned by Gmail API does not match the value returned by len()Gmail API 返回的邮件部分大小与 len() 返回的值不匹配
【发布时间】:2018-06-07 01:57:07
【问题描述】:

我正在使用 Python 3 和 google-api-python-client 包从 Gmail 收件箱中读取电子邮件。

我正在使用 urlsafe_b64decode() 函数解码消息正文:

msg_body = base64.urlsafe_b64decode(payload_body['data'])

utf-8ISO-8859-1 编码消息一切正常。但是,当消息使用更“复杂”的字符集(如 gb2312)时,size 字段中的值与以下返回的值不匹配:

len(msg_body)

使用gb2312 字符集编码的消息部分示例:

>>> payload_body['size']
147
>>> len(msg_body)
168

我错过了什么吗?

【问题讨论】:

  • 您是否引用sizeEstimate 是消息的估计大小(以字节为单位)?是什么让您认为它们应该返回相同的结果?
  • @noogui 不,我指的是size 字段,它指示每个消息部分的确切大小:developers.google.com/gmail/api/v1/reference/users/messages/…
  • 什么是 len(payload_body['data'])?您似乎正在将 b64 编码与 b64 解码和/或有效负载字节与 Unicode 字符(这是 Python len() 函数计算在内)进行比较。

标签: python-3.x gmail-api


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2010-09-18
    • 2021-05-01
    • 2020-12-23
    • 1970-01-01
    • 2018-05-06
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    相关资源
    最近更新 更多