Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, tenho um programainha que lê e-mails de serviores IMAP através do TelNet.
Porém, se vem algum caracter especial(acento) no assunto ele me traz uma coisa nada a vê.
Exemplo
=?iso-8859-1?B?UmU6IOk=?=
Isso daí é 'Re: é'.
Para criar os Streams:
m_oImapServ = new TcpClient( sHost, nPort);
m_oNetStrm = m_oImapServ.GetStream();
m_oRdStrm = new StreamReader(m_oImapServ.GetStream());
Já tentei colocar o Encoding:
m_oRdStrm = new StreamReader(m_oImapServ.GetStream(),System.Text.Encoding.GetEncoding("iso-8859-1"));
Mas nem deu certo.
Alguém tem alguma idéia do que eu possa fazer ?
Já tentei.
A codificação vai de String -> Bytes -> String.
Isso já me vem nos bytes, antes de converter para string. Teria que ser algo anterior a isso. Tentei colocar no Stream, mas também não deu.
http://www.faqs.org/rfcs/rfc2047 (seção 4)
Seguinte:
=?iso-8859-1?B?UmU6IOk=?=
O primeiro B, em negrito, siginifica que é Base64. Outro caracter válido ali é Q, de Quoted-Printable.
A segunda parte em negrito é o texto. Só decodificar da base 64.
É isso ai.
umbeijonabunda.
esse 'iso-8859-1' é um tipo de codificação.
Veja se há como alterar a codificação com o System.Text.Encoding se eu não me engano.