擅长:python、mysql、java
<p>这是一个老问题,但我面对这个问题,很难找到解决办法。。。也许这可以帮助其他人</p>
<p>编辑:这仅包括将文件名“解码”为正确文件名的部分</p>
<pre><code>import re
import base64
import quopri
def encoded_words_to_text(encoded_words):
try:
encoded_word_regex = r'=\?{1}(.+)\?{1}([B|Q])\?{1}(.+)\?{1}='
charset, encoding, encoded_text = re.match(encoded_word_regex, encoded_words).groups()
if encoding is 'B':
byte_string = base64.b64decode(encoded_text)
elif encoding is 'Q':
byte_string = quopri.decodestring(encoded_text)
return byte_string.decode(charset)
except:
return encoded_words
</code></pre>
<p>结果:</p>
<pre><code>test_string = '=?utf-8?B?SUJUIFB1cmNoYXNlIE9yZGVyLnBkZg==?='
encoded_words_to_text(test_string)
'IBT Purchase Order.pdf'
</code></pre>