Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 28, 2011 13:08:40

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Чтение по POP3 - koi8-r проблемка

>>> 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)

Офлайн

#2 Ноя. 29, 2011 11:04:56

s_king
От:
Зарегистрирован: 2011-11-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Чтение по POP3 - koi8-r проблемка

И все хорошо, всю шапку показывает нормально, но там enc=none, а вот тело всегда koi8-r так вот там всегда проблема
print i.decode(enc)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-7: ordinal not in range(128)

почему так? может он не с той кодировки пытается перекодировать, хотя не логично но что-то же тогда не так …



Офлайн

#3 Ноя. 30, 2011 04:22:14

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Чтение по POP3 - koi8-r проблемка

Кодировку тела сообщения, как правило, можно определить с помощью метода get_content_charset.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version