Ошибка в кодировке e-mail
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Ошибка в кодировке e-mail Expand / Collapse
Автор
Сообщение
31.03.2007 23:03
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
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--


Помогите решить вопрос.
Слушаю Ваши мнения !
Сообщ. #912085
01.04.2007 14:34
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
А при чем здесь C#?
Сообщ. #912093
01.04.2007 20:16
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.07.2008 21:31
Сообщ.: 5, Visits: 16
На С# написан POP3-клиент.

С использованием почтового протокола POP3 даю команду
RETR(номер сообщения) и считываю поток строк.

public StreamReader RdStrm;
temp = ReadStrm.ReadLine();

Сообщение из письма на английском выводится на консоль отлично.

А вот когда письмо на русском языке послано через браузер
(например с MAIL.RU на RAMBLER.RU)
приводяться только знаки препинания (см. выше).

Я полагаю, что проблема в кодировке, но вот где ее поставить ???
Сообщ. #912121
02.04.2007 12:22
Supreme Being

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-заголовков. Только тогда все будет работать правильно.

Сообщ. #912136
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 10:58