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 :

Lecture du caractères UTF-16 fichier


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Lecture du caractères UTF-16 fichier
    Bonjour tous!

    Tout d'abord, je vous souhaite de très bonnes fêtes de fin d'année ainsi qu'une très bonne année 2007.

    Ensuit, voilà, je n'arrive pas lire un unicode fichier(extrait).
    En fait, je dois récupérer les données de ce fichier en function C. Comment effectuer la lecture des deux ocbes UTF-16 caractères et la convertir en UTF-8 ?

    Merci pour votre aide.

    Ici, mon faux code:

    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
        int i, j, field=0;
        short c=0;
     
        for (i=0;(((c=getwc(Fichier))!=WEOF)&&(c!='\n')); i++)  
          for (j=0; ((c=getwc(Fichier))!='0x0900'); j++)
          {
            switch (field)
            {  case 1: buf_ID[i]=(wchar_t)c; 
                           break;
                case 2: buf_lang1[i]=(wchar_t)c;
                           break;
                case 3: buf_text1[i]=(wchar_t)c;
                           break;
                case 4: buf_lang2[i]=(wchar_t)c;
                           break;
                case 5: buf_text2[i]=(wchar_t)c;
                           break;
                default: break;
            }
            field++;
        }
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Utilise iconv()...

    man 3 iconv

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Jamlan
    Ici, mon faux code:
    C'est pas
    mais
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    pour la même raison qu'on met le résultat de getc dans un int et pas dans un char (WEOF mis dans un wchar_t est peut-être indiscernable d'un caractère valide). wint_t est défini dans wctype.h et wchar.h.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    pour la même raison qu'on met le résultat de getc dans un int et pas dans un char (WEOF mis dans un wchar_t est peut-être indiscernable d'un caractère valide). wint_t est défini dans wctype.h et wchar.h.
    Ah, OK. Merci, c'est effectivement tout à fait logique.
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/01/2014, 14h53
  2. Réponses: 1
    Dernier message: 08/07/2012, 22h46
  3. Réponses: 1
    Dernier message: 04/06/2011, 07h10
  4. Lecture des caractères accentués dans un fichier
    Par albertgl dans le forum MATLAB
    Réponses: 15
    Dernier message: 04/03/2010, 15h35
  5. Réponses: 5
    Dernier message: 11/12/2006, 16h41

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