При декодировании темы (Subject) письма строка урезается.
Код:
Regex regex = new Regex(@"(?:=?)([^?]*)(?:?B?)([^?]*)(?:?=)");
MatchCollection rr = regex.Matches(_msg.Subject);
if (rr.Count > 0)
{
string charset = rr[0].Groups[1].Value;
string data = rr[0].Groups[2].Value;
byte[] b = Convert.FromBase64String(data);
string res = Encoding.GetEncoding(charset).GetString(b);
return res;
}
MatchCollection rr = regex.Matches(_msg.Subject);
if (rr.Count > 0)
{
string charset = rr[0].Groups[1].Value;
string data = rr[0].Groups[2].Value;
byte[] b = Convert.FromBase64String(data);
string res = Encoding.GetEncoding(charset).GetString(b);
return res;
}
=?UTF-8?B?0J/RgNC40LLQtdGCINC60LDQuiDQtNC10LvQsCDRh9GC0L4g0LTQtdC70LA=?=
Закодированная тема:
Привет как дела что делаешь это тест это длинная тема
На выходе получаю:
Привет как дела что дела
Не могу понять, где именно обрезается текст - регулярка возвращает все правильно. Почему часть текста при декодировании может обрезаться?
По длине вижу, что закодированная строка слишком короткая. Декодирование в PSPad подтверждает подозрения.