IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#][CSV] souci d'encodage


Sujet :

Windows Forms

  1. #1
    Membre du Club Avatar de papouAlain
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 127
    Points : 64
    Points
    64
    Par défaut [C#][CSV] souci d'encodage
    Je cherche à Exporter le contenu de tables de ma base de données SQL Server en CSV.
    Ces données contiennent des Accents (et oui on est francais).
    Quand j'ouvre le CSV dans EXcel il semble que les données soient codées en UTF8. les é sont transformé en é on dirait du UTF8.
    Donc j'ai mis en place le code suivant pour traduire ce serbo-croate en Franchouillard bien de chez nous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    						for (int i=0 ; i <nbligne ; i++)
    						{
    							string ligne = MyTable.Rows[i].ToString();
    							byte[] DefaultLine = Encoding.Default.GetBytes(ligne);						
    							Encoding DestEnc = Encoding.Default;
    							Encoding SrcEnc = Encoding.UTF8;
    							byte [] CSVLine = Encoding.Convert(SrcEnc, DestEnc, DefaultLine);
    							sw.Write(Encoding.Default.GetChars(CSVLine));
    							sw.WriteLine();
    						}
    mais pas de bol ça change bien le résultat dans le CSV ouvert dans Excel.
    Tous les caractères accentués sont supprimés.
    Je comprends plus.
    Quelqu'un peut me dire où je me trompe...
    C'est au pied du mur, qu'on voit le mieux le mur !!!

  2. #2
    Membre du Club Avatar de papouAlain
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 127
    Points : 64
    Points
    64
    Par défaut
    j'ai changé l'extension CSV en TXT.

    En passant par l'ouverture de fichier de Excel et en choisissant délimité par ; en UTF8, je récupère bien mes données accentuées.

    Alors pourquoi Excel ne me demande pas de lui de préciser comment je veux ouvrir ce fichier quand c'est du CSV, il se débrouille tout seul et me fait un gros Kaka !

    Est-ce que j'ai oublié de préciser quelque chose lors de la création du fichier par mon code ?
    Est-ce que c'est coté Excel qu'il faut préciser quelque chose ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    					FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite);
    					FileIOPermission fio = new FileIOPermission(FileIOPermissionAccess.Append, path);
    					StreamWriter sw = new StreamWriter(fs);
     
    					// mon code précédent
    De toute façon je ne peux pas donner une autre extension que CSV, c'est celle qu'attend le client...
    C'est au pied du mur, qu'on voit le mieux le mur !!!

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 144
    Points : 94
    Points
    94
    Par défaut
    Salut,

    Essaie en "Unicode", tu ne devrais pas avoir ce problème...

  4. #4
    Membre du Club Avatar de papouAlain
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 127
    Points : 64
    Points
    64
    Par défaut
    Déjà fait avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    						Encoding SrcEnc = Encoding.Unicode;
    et le résultat est du même genre, c.a.d des caractères accentués remplacés par é...
    C'est au pied du mur, qu'on voit le mieux le mur !!!

  5. #5
    Membre du Club Avatar de papouAlain
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 127
    Points : 64
    Points
    64
    Par défaut
    je crois que j'ai essayé tout ce qui est possible comme formats et ça le fait pas...
    j'en reviens à ma question : est-ce qu'il ne faut pas donner une propriété particulière au fichier ???
    C'est au pied du mur, qu'on voit le mieux le mur !!!

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Lorsque de la création du StreamWriter tu peux préciser l'encodage à utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);

  7. #7
    Membre du Club Avatar de papouAlain
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 127
    Points : 64
    Points
    64
    Par défaut
    merci c'était la bonne solution !
    C'est au pied du mur, qu'on voit le mieux le mur !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CSV] Problème d'encodage
    Par simoryl dans le forum Langage
    Réponses: 13
    Dernier message: 18/04/2012, 15h20
  2. [Plugin maven-changelog-plugin] Soucis d'encodage UTF-8
    Par JOJO_DE_LYON dans le forum Maven
    Réponses: 4
    Dernier message: 03/06/2008, 14h32
  3. Formulaire CGI, soucis d'encodage
    Par Olivier Regnier dans le forum Web
    Réponses: 0
    Dernier message: 22/01/2008, 12h57
  4. Souci d'encodage UTF-8 (config non prise en compte)
    Par Assimil dans le forum Zend Studio
    Réponses: 6
    Dernier message: 03/07/2007, 12h38
  5. [CSV] conflit d encodage
    Par philippe123 dans le forum Langage
    Réponses: 3
    Dernier message: 01/08/2006, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo