Gmail API - 如何正确解析邮件正文数据?

mzt*_*two 5 gmail encoding ascii ruby-on-rails utf-8

我正在使用新的 Gmail API,并且完全坚持如何正确处理 Ruby/Rails 中 [body][data] 部分的编码,用于 text/plain 消息和 text/html 消息。

假设 data = 编码的消息部分。

调用Base64.decode64(data).unpack("M")它会返回一个 US-ASCII 编码的文本正文,其中包含网页上显示的大量缺失字符。

调用Base64.decode64(data).encode('UTF-8')会引发从 US-ASCII 到 UTF-8 的转换错误

然而,如果我这样做了Base64.decode64(data).encode('UTF-8', {:invalid => :replace, :undef => :replace, :replace => '?'}),我仍然会看到很多问号。

有人能指出我如何正确编码并以 UTF-8 显示消息正文的正确方向吗?

电子邮件 JSON 响应的格式如下:

"parts": [
   {
    "partId": "0",
    "mimeType": "text/plain",
    "filename": "",
    "headers": [
     {
      "name": "Content-Type",
      "value": "text/plain; charset=UTF-8"
     },
     {
      "name": "Content-Transfer-Encoding",
      "value": "quoted-printable"
Run Code Online (Sandbox Code Playgroud)

inf*_*sed 4

用于Base64.urlsafe_decode64解码消息正文。