Email UTF-8主题行在Gmail中显示为问号

Email UTF-8主题行在Gmail中显示为问号,email,character-encoding,gmail-imap,email-headers,Email,Character Encoding,Gmail Imap,Email Headers,我正试图从我的程序向gmail帐户发送主题行中包含汉字的电子邮件,但主题行显示为??。这是主题行的编码方式: =?utf-8?B?Rlc6IOiri+W5q+aIkee1piDoiIfkvaDotbfkvobnmoTlkIzkuos=?= 编码有什么错误吗?有什么我必须记住的吗?邮件正文中也包含汉字,但这些汉字显示得很好。我正在使用base64对主体进行编码。对于那些对这个问题的答案感兴趣的人,这个字符串是按照编码的MIME头。 =?utf-8?B?Rlc6IOiri+W5q+aikee1pi

我正试图从我的程序向gmail帐户发送主题行中包含汉字的电子邮件,但主题行显示为
??
。这是主题行的编码方式:

=?utf-8?B?Rlc6IOiri+W5q+aIkee1piDoiIfkvaDotbfkvobnmoTlkIzkuos=?=

编码有什么错误吗?有什么我必须记住的吗?邮件正文中也包含汉字,但这些汉字显示得很好。我正在使用base64对主体进行编码。

对于那些对这个问题的答案感兴趣的人,这个字符串是按照编码的MIME头。
=?utf-8?B?Rlc6IOiri+W5q+aikee1pidoiiifkvadotbfkobnmotlkizkuos=?=
表示它使用utf-8字符集,
B
表示基本64编码


在PHP中,使用。

=?utf-8?B?Rlc6IOiri+W5q+AIKEE1PIDOIIFKVADOBNMOTLKIZKUOS=?=
由base64编码,字符串缓冲区(由base64解码后)由utf-8编码

您可以在python中对其进行解码:

>>> from base64 import b64decode
>>> b64decode(b'Rlc6IOiri+W5q+aIkee1piDoiIfkvaDotbfkvobnmoTlkIzkuos=').decode('utf-8')
'FW: 請幫我給 與你起來的同事'
同样在python中:

>>> from email.header import decode_header
>>> decode_header('=?utf-8?B?Rlc6IOiri+W5q+aIkee1piDoiIfkvaDotbfkvobnmoTlkIzkuos=?=')
[(b'FW: \xe8\xab\x8b\xe5\xb9\xab\xe6\x88\x91\xe7\xb5\xa6 \xe8\x88\x87\xe4\xbd\xa0\xe8\xb5\xb7\xe4\xbe\x86\xe7\x9a\x84\xe5\x90\x8c\xe4\xba\x8b', 'utf-8')]
>>> _[0][0].decode(_[0][1])
'FW: 請幫我給 與你起來的同事'
或者在
bash
(也许您应该通过管道连接到
iconv
):

~ $ echo Rlc6IOiri+W5q+aIkee1piDoiIfkvaDotbfkvobnmoTlkIzkuos= | base64 -d
FW: 請幫我給 與你起來的同事