Ecriture dans fichier texte (.csv) sous VB .Net et pb d'affichage des caractères

Hebus1976 Messages postés 12 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 29 septembre 2005 - 29 sept. 2005 à 12:33
jbouyer Messages postés 5 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 février 2006 - 20 févr. 2006 à 10:06
Je développe en VB .Net sous WinXP.
J'écris des données dans un fichier texte (séparées par des points virgules : type CSV) . Je mets d'ailleurs une extension .csv à ce fichier. Tout se passe bien jusque là. Lorsque j'ouvre le fichier avec Bloc-notes par exemple, tous mes caractères sont intactes (même les spéciaux). En revanche, lorsque j'ouvre le même fichier avec Excel les caractères spéciaux ne pas pas reconnus correctement. Exemple : "général" sous Bloc-notes donne "générale" sous Excel, voire "g?n?rale" suivant l'encodage utilisé. Et le but de la manoeuvre est que le fichier puisse être lu aussi bien sous Bloc-notes que sous Excel. J'ai essayé d'encoder en UTF-8, UTF-7, ASCII, Unicode....mais il y a toujours un pb avec les caractères spéciaux. J'ai aussi essayé de changer la police mais rien à faire, je suis à cours d'idées.

Alors si vous avez des suggestions ????

2 réponses

Hebus1976 Messages postés 12 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 29 septembre 2005
29 sept. 2005 à 13:40
C'est bon en fait j'ai trouvé la solution à mon pb. Il suffit d'encoder en ANSI.
Je croyais que VB le faisait par défaut mais non il utilise UTF-8 par défaut.
Je faisais ça :


Dim FichierCSV
As
New FileInfo("c:\MonFichier.csv"
)

Dim sw
As
New StreamWriter(FichierCSV.Create)
'Qui revient à ça : Dim sw As New StreamWriter(FichierCSV.Create, Encoding.UTF8)



sw.WriteLine("générale"
)

Au lieu de ça (pour un encodage en ANSI) :



Dim FichierCSV
As
New FileInfo("c:\MonFichier.csv"
)

Dim sw
As
New StreamWriter(FichierCSV.Create, Encoding.Default)


sw.WriteLine("générale"
)

En espèrant que ceci aidera quelqu'un.....

Bonne prog.

@+
0
jbouyer Messages postés 5 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 février 2006
20 févr. 2006 à 10:06
Salut Hebus,
Merci pour ton code, moi ça m'a aidé.
J'avais le meme pb, et ça m'a permis de le résoudre.

++
0
Rejoignez-nous