|
|
|
новичок
      
участник
Last Login: 12.07.2008 21:31
Сообщ.: 5,
Visits: 16
|
|
Здравствуйте !!!
Получил письмо по протоколу POP3.
В теле письма вместо русского текста пусто, за исключением знаков пунктуации.
С латинскими буквами и с кодировкой BASE64 все в порядке, а вот с русскими не ясно.
Пробовал менять кодировку - не помогает !!!
This is a multi-part message in MIME format.
--_----------=_1175290434731789
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="windows-1251"; format="flowed"
!!!
--
.
--
- - !
http://irr.rambler.ru/
--_----------=_1175290434731789
Content-Disposition: attachment; filename="msn.gif"
Content-Type: image/gif; name="msn.gif"
Content-Transfer-Encoding: base64
R0lGODlhKQASAMQAAIuni6RfQJnJaf09PPrZ2Eh1SIYAAKzErOTq5MubglyFXPB5eZSbXJa4YMvP
y/m7rqjJVLi1s/2kiopyANPlkJ/BQcjmxbXWafzv76C4oGyQa54LC/8CAjNmM9jY2AAAACH5BAAA
AAAALAAAAAApABIAAAXYoCeOZGmeaJpiD6G+8EgsXB3fKFHvEu6Lul1t8EslHqWBcFg8JTaGTUJE
W3KIzRIhutkEPErrYtQpkDUeQKejEHUAIk1mtIhyw8ueu3P2dBAeGnBrcXMjXYgbVhwkZQdpBWh8
Hg5zHYKBhkBdd0IDEY0AcAUAaBpvgH6qciYBiAkMsQ0NF42qHRlolAodj3yirCYPAcQVEBACyba4
CrkHcJRmk2yaJA4BE8TJ27anGbkIfx4H0iJq1SQMxBOzyRS2B3y5aWsFgJN+6CTEAaBZPxZc/BtI
kEQIADs=
--_----------=_1175290434731789--
Помогите решить вопрос.
Слушаю Ваши мнения !
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
|
|
|
|
новичок
      
участник
Last Login: 12.07.2008 21:31
Сообщ.: 5,
Visits: 16
|
|
На С# написан POP3-клиент.
С использованием почтового протокола POP3 даю команду
RETR(номер сообщения) и считываю поток строк.
public StreamReader RdStrm;
temp = ReadStrm.ReadLine();
Сообщение из письма на английском выводится на консоль отлично.
А вот когда письмо на русском языке послано через браузер
(например с MAIL.RU на RAMBLER.RU)
приводяться только знаки препинания (см. выше).
Я полагаю, что проблема в кодировке, но вот где ее поставить ???
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| В данном случае можно указать классу StreamReader кодировку текста windows-1251. По умолчанию он использует utf-8 и поэтому руссккие буквы теряются. StreamReader sr = new StreamReader(networkStream, Encoding.GetEncoding("windows-1251")); Однако это частное решение для подходящее только для писем в win1251. Если письмо использует другую кодировку, то опять начнуться проблемы. Надо или делать свой класс для работы с mime-сообщенями или попытаться использовать классы из пространства имен System.Net.Mail (.NET 2) так чтобы кодировка определялась на основе почтовых и mime-заголовков. Только тогда все будет работать правильно.
|
|
|
|