Probleme de décodage de caractères accentués [Résolu]

Signaler
Messages postés
4
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
17 octobre 2005
-
Messages postés
4
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
17 octobre 2005
-
Bonjour,

Voici mon probleme, je vais chercher le contenu de mes mails, via un programme c#, sur un compte pop avec les instructions classiques:
USER XXX
PASS XXX
STAT
RETR X

Seulement, lors du RETR je reçois ce type de code :

...

Date:Wed, 12 Oct 2005 12:36:44 +0200


From:=?iso-8859-1?Q?"Fr=E9d=E9ric_DUPONT"?= < [mailto:fdupont@fdupont.fr fdupont@fdupont.fr] >
...

J'aierai savoir comment faire pour récuperer le même texte mais avec les caractères accentués.(From=Frédéric_DUPONT < [mailto:fdupont@fdupont.fr fdupont@fdupont.fr] >)

Merci beaucoup.

6 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
j'ai trouvé un truc pour toi : http://anmar.eu.org/projects/sharpwebmail/

va téléchargé les sources et regarde le fichier suivant :

sharpwebmail-0.11\SharpMimeTools\src\SharpMimeTools.cs

Sébastien FERRAND
[MVP C#]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
as-tu regardé du coté de l'espace de nom System.Text.Encoding ?

Sébastien FERRAND
[MVP C#]
Messages postés
4
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
17 octobre 2005

En fait, j'ai essayé plusieurs solution d'encodage.

- Deja au niveau du flux :


StreamReader sr = new StreamReader(ns, System.Text.Encoding.ASCII);

- Puis au niveau de la chaine elle même:


string returnValue = "";
StreamReader sr =
new StreamReader(ns);

byte[] read =
new
byte[256];

ns.Read(read,0, 256);
System.Text.Encoding encode = System.Text.Encoding.GetEncoding(1252);
// 1252 correspond au codage western iso-8859-1
returnValue = encode.GetString(read);
return returnValue;

J'ai essayé plusieurs types d'encodage: UTF8, ASCII, .. mais j'avoue m'y perdre un peu. Je voudrais deja identifier le type de codage dans lequel arrive mes données, et savoir dans lequel les encoder pour récupérer mes caractéres spéciaux.
Je me demande aussi s'il est possible de prendre la chaine telle qu'elle est, et lui appliqué une fonction d'encodage/decodage, ou si je dois isoler les "=E9" et les remplacer par les caractéres correspondant.

Merci
Messages postés
4
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
17 octobre 2005

up
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
regarde la RFC 2047 déjà... http://www.csharpfr.com/rfc.aspx?rfc=2047

Sébastien FERRAND
[MVP C#]
Messages postés
4
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
17 octobre 2005

C'est parfait j'y ai trouvé pas mal de réponses.
Merci beaucoup pour le temps pris et l'efficacité .