Problème de conversion UTF7

Signaler
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Bonjour,

J'ai un petit problème, j'ai un fichier que j'ai éditer avec le StreamWriter


StreamWriter SW =
new StreamWriter(_File,System.Text.Encoding.UTF7);

Puis j'insère un string dans le fichier.

Cepedant, lorsque que je relis mon fichier, je le fais avec:


StreamReader SR =
new StreamReader(File);



J'obtiens donc un string correspondant au codage ASCII, je pense, non ? Je voudrais a partir, du fichier relu de cette façon, ré obtenir mon premier string que j'avais inséré dans le fichier car j'en obtient un différent.

Exemple: lorsque l'on écrit [ dans le fichier en UTF7, il écrit un truc comme +us7 , je voudrais donc, une fois +us7 lu obtenir [

Je pense que c'est un système de conversion, je bataille mais je trouve pas. Au moins que je recré un fichier en écrivant normalement dedans et en le relisant en UTF7, la ça marcherait (mais bon c'est un peu laborieux)

Si vous avez des idées, merci

bonne fin de matinée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------

2 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Hello,
Quand tu lis ton fichierm tu dois spécifier au StreamReadear quell encodage tu utilises, de cette manière :


StreamReader sr =
new StreamReader(this._myFile, System.Text.Encoding.UTF7);

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
22
Oui mais justement, je ne veux pas lire en UTF7. Ca serait compliqué à expliquer mais je ne peux le faire. Mais tu as rasion, de cette facon, ca marchait impeccable.

J'ai cependant trouvé une solution à mon problème. En passant par un MemoryStream.
Voila comment transforme mon string lu de la façon normale en UTF7:


public
string UTF7FromASCII(
string ASCIIText)


{


MemoryStream MS =
new System.IO.MemoryStream();


MS.Seek(0,System.IO.SeekOrigin.Begin);


StreamWriter SW =
new System.IO.StreamWriter(MS);


SW.WriteLine(ASCIIText);


SW.Flush();




MS.Seek(0,System.IO.SeekOrigin.Begin);


System.IO.StreamReader SR =
new System.IO.StreamReader(MS,System.Text.Encoding.UTF7);



string Result = SR.ReadLine();




SW.Close();


SR.Close();


MS.Close();



return(Result);


}

Voila, en tout cas merci beaucoup à toi !

Bonne fin de journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------