Форум сайта python.su
>>> import email.header
>>> s = '''От: =?KOI8-R?Q?=F5=C4=CF=D7=C5=CE=CB=CF_=F3=C5=D2=C7=C5=CA?=
... <xxx@bk.ru>
... Кому: xxx@mail.ru
... Тема: Fwd: =?KOI8-R?Q?=F4=C5=CB=D5=DD=C9=C5_=CB=D5=D2=D3=D9_=D7=C1?=
... =?KOI8-R?Q?=CC=C0=D4_=CB_=D2=D5=C2=CC=C0_=D7_=D3=C9=D3=D4=C5=CD=C5?=
... =?KOI8-R?Q?_=3F=F4=C5=CC=C5=C2=C1=CE=CB=3F?=
... '''
>>> for i in email.header.decode_header(s):
... enc = i[1]
... if enc:
... print i[0].decode(enc)
... else:
... print i[0]
...
От:
Удовенко Сергей
<xxx@bk.ru>
Кому: xxx@mail.ru Тема: Fwd:
Текущие курсы валют к рублю в системе ?Телебанк?
>>>
Отредактировано (Ноя. 28, 2011 13:09:42)
Офлайн
И все хорошо, всю шапку показывает нормально, но там enc=none, а вот тело всегда koi8-r так вот там всегда проблема
print i.decode(enc)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-7: ordinal not in range(128)
почему так? может он не с той кодировки пытается перекодировать, хотя не логично но что-то же тогда не так …
Офлайн
Кодировку тела сообщения, как правило, можно определить с помощью метода get_content_charset.
Офлайн