2011-06-08 60 views
2

= UTF-的8B TmV3IFBlcnNvbmFsIE1lc3NhZ2U6IE1vbmcgYW5oIHTDrG0gbOG6oWkgY2h1eWVudGIub3JnIQ == =解码python中这种类型的字符串

嗨,我有这个字符串是从IMAP命令返回了什么 - ????做任何人知道如何在这个解码python所以我会有正确的UTF-8字符串?

回答

4
>>> print unicode(base64.decodestring('TmV3IFBlcnNvbmFsIE1lc3NhZ2U6IE1vbmcgYW5oIHTDrG0gbOG6oWkgY2h1eWVudGIub3JnIQ=='), "utf-8") 
New Personal Message: Mong anh tìm lại chuyentb.org! 
>>> 
+0

谢谢!我怎么能自动拆分原始字符串来获取这两个组件?如果字符串中的第一个参数不是'UTF-8',那么使用一些东西而不是unicode()? – 2011-06-08 18:41:45

+0

例如:=?ISO-8859-1?B?UmU6IENo4G8gYuFj?= – 2011-06-08 18:43:35

+0

'print unicode(base64.decodestring('UmU6IENo4G8gYuFj'),“8859”)' – tMC 2011-06-08 18:47:52

4

我想通过email.header.decode_header()来解码这个编码字的最好方法。它会返回一个列表,其中第一个元素是解码的字符串,第二个元素是编码。

例子:

email.header.decode_header('=?utf-8?Q?T=e1=ba=a1p_Ch=c3=ad_Gi=e1=ba=a3m_C=c3=a2n_=28=40tapchigiamcan=29_is_now_following_you_on_Twitter=21?=') 
[('T\xe1\xba\xa1p Ch\xc3\xad Gi\xe1\xba\xa3m C\xc3\xa2n (@tapchigiamcan) is now following you on Twitter!', 'utf-8')]