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

C# Discussion :

Debutant - streamreader et caractères accentués [Fait]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut Debutant - streamreader et caractères accentués
    Bonjour,

    j'ai un problème tout bête, mais je suis bloqué ...

    J'ai un programme qui lit un fichier texte, enregistrement après enregistrement ... Il fonctionne très bien, sauf que le ReadLine "zappe" les accents !

    Exemple de fichier

    AABBBBBCCCCC
    RRRRRRRRRRRRR
    TTTTTTéTTTTR

    Résultat :
    le Readline ne retourne que les lectures suivantes
    AABBBBBCCCCC
    RRRRRRRRRRRRR
    TTTTTTTTTTR

    Je lis chaque ligne dans un string,
    du genre

    string ligne;
    ligne=reader.ReadLine();

    Vraiment tout bête, comme dans n'importe quel tuto C# de base !

    J'immagine qu'il y a une propriété ou un encodage à spécifier quelque part,
    mais où ?

    Merci de votre aide,

    diddl

  2. #2
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Par défaut, StreamReader est censé lire en UTF-8 (ce qui supporte les accents). Toutefois tu peux spécifier l'encoage à utiliser, notamment dans le constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamReader sr = new StreamReader("monFichier.txt", Encoding.UTF8);

  3. #3
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Pour texte DOS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    StreamReader sr = new StreamReader("monFichier.txt",
       Encoding.GetEncoding("iso-8859-1")) ;

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut
    OK merci
    je vais essayer ça.

    diddl

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Pour texte DOS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    StreamReader sr = new StreamReader("monFichier.txt",
       Encoding.GetEncoding("iso-8859-1")) ;
    Re-moi,

    cette solution a fonctionnée, merci beaucoup.

    Pour info,
    L'Encoding.UTF8 n'a en revanche pas marché.

    Sujet clôt pour l'instant,
    il n'empêche que je creuserais ça quand j'aurais le temps car c'est la première fois que je vois l'option GetEncoding rajoutée dans une lecture de fichier ; je dois avoir une config spéciale pour que l'option par défaut ne marche pas ?

    Merci encore en tous cas.

    diddl

  6. #6
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Personnellement, pour que les accents soient pris en compte, je dois indiquer dans le StreamReader (ou Writer, d'ailleurs) : Encoding.Default :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamReader sr = new StreamReader("monFichier.txt", Encoding.Default);

  7. #7
    Membre confirmé Avatar de Apocalyps
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Août 2006
    Messages : 83
    Par défaut
    Comme Skalp, tu peux utiliser StreamReader avec l'encoding Default, mais pour une lecture de tout type d'accent, je te conseil de passer à l'encoding Unicode ou BigEndian.

Discussions similaires

  1. Caractères accentués avec <html:link>
    Par papysam dans le forum Struts 1
    Réponses: 5
    Dernier message: 25/05/2007, 15h18
  2. Chaines avec caractères accentués dans interbase
    Par Tsimplice dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/03/2004, 17h12
  3. Chaînes avec des caractères accentués dans Interbase
    Par Invité dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 22h39
  4. [PostgreSQL] Les caractères accentués ?
    Par yacomor dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/02/2003, 16h30
  5. insérer des caractères accentués INFORMIX/JDBC
    Par donde dans le forum Informix
    Réponses: 2
    Dernier message: 19/11/2002, 20h02

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