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

Framework .NET Discussion :

Fichier Texte et lettres accentuées


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 7
    Par défaut Fichier Texte et lettres accentuées
    J'enregistre du texte dans un fichier texte.
    Le problème c'est que les lettres accentuées sont enregistrées sur 2 octets.
    En regardant le code hexa, un 'é' est enregistré 0xc3 0xa9

    J'ai besoin de les enregistrés sur 1 octet (code ASCII étendu ANSI).
    un 'é' = 0xe9

    J'utilise les fonctions suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System::IO::StreamWriter ^ swFichier;
    swFichier = gcnew System::IO::StreamWriter (openFileDialog->FileName);
    swFichier->WriteLine ("é", System::Text::Encoding::ASCII);
    Je vois pas comment faire pour palier mon problème

  2. #2
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    D'après la msdn (Encoding, classe) :
    ASCIIEncoding code les caractères Unicode en caractères ASCII simples de 7 bits. Ce codage ne prend en charge que les valeurs de caractères comprises entre U+0000 et U+007F. Page de codes 20127. Également disponible à travers la propriété ASCII.
    Le page code 20127: c'est "US-ASCII". Donc, à priori pas de chance pour trouver notre "é".
    Il faudrait donc utiliser le code page 1259 (Windows Europe de l'ouest), ou bien 28591 (iso-8859-1 Europe de l'Ouest (ISO)) voire 28605 (iso-8859-15 Latin 9(ISO)).
    Pour obtenir le bon Encoding, jouer avec GetEncoding()

  3. #3
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    swFichier = gcnew System::IO::StreamWriter (openFileDialog->FileName);
    Te retourne un StreamWriter avec l'encodage UTF-8, d'où tes deux bytes pour les accents. Utilise plutot (à remettre en C++/CLI)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    StreamWriter sw = new StreamWriter(file, false, Encoding.Default);

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 7
    Par défaut
    Merci de ta réponse, elle marche nickel.
    Je faisais la connerie de mettre le codage pendant l'ecriture au lieu de l'ouverture.

    La solution temporaire que j'avais trouvé été de convertir le string en char* (avec la class marshal) et d'utiliser la bonne vieille fonction fwrite.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/11/2011, 23h35
  2. Remplacer les lettres accentuées d'un fichier par leur équivalent html
    Par Michel Deriaz dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 07/03/2011, 21h12
  3. Problème de lettres accentuées dans un fichier inclus
    Par rahimk dans le forum Mise en forme
    Réponses: 10
    Dernier message: 01/01/2011, 16h40
  4. les lettres accentuées empêchent le texte de s'afficher
    Par phil74 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 05/12/2008, 11h03
  5. fichier texte : comparer deux chaines accentuées
    Par rvfranck dans le forum Langage
    Réponses: 4
    Dernier message: 30/10/2008, 13h27

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