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 :

écriture de caractères avec accent en langage c


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Mai 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 9
    Par défaut écriture de caractères avec accent en langage c
    Bonjour !

    qui sait bien utiliser le langage c pour pouvoir écrire correctement des chaînes de caractères avec des accents dans un fichier ??

    essayés : wchar_t (ne règle pas le problème)


    lorsque je veux écrire des caractères avec accents j'ai n'importe quoi
    ex : , à la place de é

    serait ce l'impasse ?

    merci à tous pour votre aide


  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Un simple char * devrais théoriquement suffire pour les accents.

    Après, si tu veux écrire dans un encodage spécifique...

    J'ai trouvé ce sujet en espérant que cela peut t'aider :
    http://www.developpez.net/forums/d11...iso-8859-15-a/

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Le problème n'est-il pas dans l'encodage / décodage du fichier que dans la gestion des accents en C ?

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Mai 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 9
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Le problème n'est-il pas dans l'encodage / décodage du fichier que dans la gestion des accents en C ?
    intéressante ta remarque
    comment puis je procéder ? j'utilise code blocks ... as tu de la lecture ad hoc à me donner sur internet?

    thks

    P

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Pour être franc, c'était une remarque intelligente mais n'exprimant pas une capacité à t'aider plus ^^

    Juste à titre d'exemple, j'ouvre Notepad++, je choisis l'encodage UTF-8 et je tape le texte suivant :
    Bonjour,
    Ké ce qe cè ke ça ?
    # Commentaire python
    49%
    J'enregistre mon fichier et je change l'encode pour mettre ANSI. Le texte affiché change automatiquement pour :
    Bonjour,
    Ké ce qe cè ke ça ?
    # Commentaire python
    49%

    Dans le lien donné par Neckara, le commentaire #5 de Thierry Chappuis est intéressant. Il se peut que :
    • soit elles sont mal écrites le fichier de sortie (ce qui voudrait dire que tes wchar ne contiennent pas les bonnes données)
    • soit le fichier de sortie est mal lu ensuite

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    J'aime pas lâché prise alors je suis allé sur Wikipedia et j'ai utilisé le code donné ici : http://en.wikipedia.org/wiki/Wide_character
    Après une modification (la liste de codes hexa n'est pas bonne), et un petit rajout, voici un code exemple :

    EDIT : la balise code ne permet pas d'afficher les caractères spéciaux. En citant le message, vous pouvez récupérer le code "normal".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #include <stdio.h>
    #include <wchar.h>
    #include <stdlib.h>
     
    int main()
    {
        wchar_t myChar1 = L'Ω';
        wchar_t myChar2 = 0x2126;  // hexadecimal encoding of char Ω using UTF-16
        wchar_t myString1[] = L"♠♣♥♦";
        wchar_t myString2[] = { 0x2660, 0x2663, 0x2665, 0x2666, 0x0000 };
        // hex encoding of null-terminated string ♠♣♥♦ using UTF-16
     
        wchar_t maChaine[] = L"Ké ce qe cè ke ça ?";
     
        FILE *fichier = fopen("encode_UTF16.txt", "wb");
        if(fichier == NULL)
        {
            puts("Erreur fichier !");
        }
        else
        {
            fwprintf(fichier, L"This is char1: %lc \n",myChar1);
            fwprintf(fichier, L"This is char2: %lc \n",myChar2);
            fwprintf(fichier, L"This is a long string1: %ls \n",myString1);
            fwprintf(fichier, L"This is a long string2: %ls \n",myString2);
            fwprintf(fichier, L"Phrase avec accents: %ls \n",maChaine);
        }
    }
    J'utilise CodeBlocks 10.5 sous XP et mon fichier s'ouvre comme il faut avec Notepad++ ou Bloc-Notes.

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/12/2009, 12h13
  2. [Lazarus] [0.9.27] Caractères avec accents
    Par JP.NUAGE dans le forum Lazarus
    Réponses: 4
    Dernier message: 19/08/2009, 10h18
  3. [Tomcat 6.0.18] Problème caractères avec accent
    Par identi dans le forum Tomcat et TomEE
    Réponses: 17
    Dernier message: 28/07/2009, 17h36
  4. Probleme Conversion de caractéres avec accent et ":"
    Par Edition 0ne dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 01/04/2009, 01h11
  5. [SQL]Caractères avec accents
    Par New dans le forum Oracle
    Réponses: 1
    Dernier message: 24/10/2005, 09h49

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