Есть одна проблема. Пишу сейчас прогу которая будет анализировать почту в почтовом ящике и выдерать из нее служебную информацию, столкнулся с одной пробблеммой и чего то никак не могу ее решить, весь нет уже облазил ничего не нашол.
Прога нормально подключаеться, логин, пароль, получает письма. Но ни как не могу распознать кодировку, либо еще какая ерунда творится, короче русский язык ни как не может понять.
Принятую информация обрабатываю вот таким кодом:
- Код: Выделить всё
Private Function ReciveCommand(ByRef Stream As System.Net.Sockets.NetworkStream) As String
Dim str1251 As String = ""
Dim str866 As String = ""
Dim strASCII As String = ""
Dim strDEFAULT As String = ""
Dim strUNICODE As String = ""
Dim strUTF32 As String = ""
Dim strUTF7 As String = ""
Dim strUTF8 As String = ""
Dim str As String = ""
Dim LastChar As String = ""
Dim Chr(0 To 4096) As Char
Dim ReciveBytes(0 To 4096) As Byte
Dim Decoder1251 As System.Text.Decoder
Decoder1251 = System.Text.Encoding.GetEncoding(1251).GetDecoder
Dim Decoder866 As System.Text.Decoder
Decoder866 = System.Text.Encoding.GetEncoding(866).GetDecoder
Do
Stream.Read(ReciveBytes, 0, 4096)
strASCII = System.Text.Encoding.ASCII.GetString(ReciveBytes)
strDEFAULT = System.Text.Encoding.Default.GetString(ReciveBytes)
strUNICODE = System.Text.Encoding.Unicode.GetString(ReciveBytes)
strUTF32 = System.Text.Encoding.UTF32.GetString(ReciveBytes)
strUTF7 = System.Text.Encoding.UTF7.GetString(ReciveBytes)
strUTF8 = System.Text.Encoding.UTF8.GetString(ReciveBytes)
'Таблица 1251
Decoder1251.GetChars(ReciveBytes, 0, 4096, Chr, 0)
For Each c As Char In Chr
str1251 += c.ToString()
Next
'Таблица 866
System.Array.Clear(Chr, 0, 4096)
Decoder866.GetChars(ReciveBytes, 0, 4096, Chr, 0)
For Each c As Char In Chr
str866 += c.ToString()
Next
For Each b As Byte In ReciveBytes
str += Microsoft.VisualBasic.Chr(CInt(b)).ToString()
Next
LastChar = str1251.Substring(str1251.Length - 1, 1)
Loop While (Not LastChar = Microsoft.VisualBasic.Strings.Chr(13))
Return str1251
End Function
На выходе получаю:
- Код: Выделить всё
str1251 = ... "Subject: =?windows-1251?B?zMjQIMLAzCDIIMLA2MXM0yDEzszT?=" ...
str866 = ... "Subject: =?windows-1251?B?zMjQIMLAzCDIIMLA2MXM0yDEzszT?=" ...
strASCII = ... "Subject: =?windows-1251?B?zMjQIMLAzCDIIMLA2MXM0yDEzszT?=" ...
strDEFAULT = ... "Subject: =?windows-1251?B?zMjQIMLAzCDIIMLA2MXM0yDEzszT?=" ...
strUTF32 = ... "" ... 'Здесь вооще ничего нет только квадраты
strUTF7 = ... "Subject: =?windows-1251?B?zMjQIMLAzCDIIMLA2MXM0yDEzszT?=" ...
strUTF8 = ... "Subject: =?windows-1251?B?zMjQIMLAzCDIIMLA2MXM0yDEzszT?=" ...
strUNICODE = ..."???›Я идиот! Убейте меня, кто-нибудь!??†Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!‹Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!???›Я идиот! Убейте меня, кто-нибудь!????"...
str = ... "Subject: =?windows-1251?B?zMjQIMLAzCDIIMLA2MXM0yDEzszT?=" ...
Что делать не знаю... как нормально получать русский язык? =(