Польские символы получают сообщения imap

У меня проблема с польскими символами (ś, ć, ż, ź, ń, ó) Когда я получаю тело письма, я получаю "??" для всех польский char.

   MailMessage temp_message = receive.get_message(mail);
   temp_message.BodyEncoding = System.Text.Encoding.GetEncoding(28592);

это результат:

UTF 8, 16 тоже не работают


person Jackop    schedule 30.05.2016    source источник


Ответы (1)


Это не странно, поскольку вы не можете преобразовать строку из одной кодировки в другую. То, что вы делаете, вообще не имеет никакого смысла.

Класс MailMessage поддерживает установку кодировки, что намного лучше, чем преобразование. Просто установите BodyEncoding на все, что вам нужно, предпочтительно в UTF-8 или UTF-16, поскольку это лучший вариант для международных символов.

person Patrick Hofman    schedule 30.05.2016
comment
Я написал: temp_message.BodyEncoding = System.Text.Encoding.UTF8; но это решение не сработало для меня - person Jackop; 30.05.2016
comment
Вы убрали всю свою конвертацию? Какая исходная строка ввода? - person Patrick Hofman; 30.05.2016
comment
Так они уже в самой струне облажались. Откуда ты это взял? - person Patrick Hofman; 30.05.2016
comment
получать почту: MailMessage message = imap.GetMessage (uid); - person Jackop; 30.05.2016
comment
Что такое imap? И где этот GetMessage метод? Это что-то от вас самих? - person Patrick Hofman; 30.05.2016
comment
Да, этот сломан. Он читается с использованием ASCII: string s = Encoding.ASCII.GetString(mem.ToArray());. - person Patrick Hofman; 30.05.2016
comment
Спасибо, извините за примитивный вопрос, но карьеру начинаю с программирования - person Jackop; 30.05.2016
comment
Без проблем. Попробуйте поменять там ASCII на UTF8 и посмотреть, работает ли. - person Patrick Hofman; 30.05.2016