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

Discussion :

Accents avec QTableWidget et WinpCap

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut Accents avec QTableWidget et WinpCap
    Bonjour,

    Je viens vers vous car cela fait jours que je suis coincé depuis 4 jours sur problème (environnement QT5.7 windows 64bit)

    Je récupère des données venant de winpcap dans un unsigned char * qui contient du texte, mais lorsque que je l'affiche sur mon QTableWidget
    les accent apparaiseent avec un losange ainsi que les accents circonflexe.

    avec un qDebug les accents apparaissent avec un point d'intérrogation.

    J'ai essayé toutes les façons inimaginable que j'ai trouvé sur google, et je n'arrive pas à afficher les accents.

    les donnees qui se trouvent dans la variable unsigned char * je les transforme dans un QByteArray ou un QString peu importe,
    j'ai tenté les toUtf8 et fromUtf8, toLatin, fromLatin et toutes les conversions qui puisse exister, mais j'ai toujours le même problème.

    Le source dans QTCreator est en UTF-8

    j'ai aussi tenté de mettre dans un QButeArray un char, un unsigned char ou byte en c, rien ne fonctionne, à la base je suis obligé de récupérer les données dans un style c car j'utilise winpcap.
    les données sont en hexadécimal bien sur..

    Si quelqu'un a déjà eu ce problème sur un QTableWidget, ce serai bien.

    peu être qu'il est possible de dire au QTableWidget le format d'encodage.

    Merci de votre aide.

  2. #2
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Points : 558
    Points
    558
    Par défaut
    Bonjour, tu as peut etre plutot un probleme pour recuperer tes données depuis ton tableau d'unsigned char a ubon format.As tu essayé quelque chose comme cela :
    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
     
         unsigned char *outdata=new unsigned char[1024];
     
        //recuperer n unsigned char de  winpcap dans outdata ....
     
         QByteArray temp;
         QString res;
         for(int i=0;i<n;i++)
        {
            temp.append((char)outdata[i]);
        }
     
     
        res=QString::fromUtf8(temp);
     
        delete [] outdata;
    Reste à savoir si tes données venant de winpcap sont bien en UTF8 sinon tu dois changer le fromUtf8 en autre chose

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut
    ce sont des donnees reseaux venant de winpcap, donc des code en hexadécimaux, je ne sais pas si c'est de l'UTF-8, quand je reçois les données, je récupère les trames qui m'intéresse
    dans un unsigned char * qui est le format de winpcap apres je les stocke dans un QByteArray avec memcpy.

    je sais par exemple que dans la trame a la position 54 j'ai une chaine de caractère qui fait 128 octets de longueur, dans mon QByteArray j'ai bien la valeur qui m'intéresse. et cette valeur je la mets dans un QTableWidget, peut etre comme tu dis les données réseau ne sont pas en UTF-8.

    J'ai essayé le morceau de code que tu as mis pour récupérer les données sans utiliser le memcpy ca n'a rien changé,mais je pense que le problème vient à la base, des bytes reçu de winpcap.

    ce qui est bizarre c'est que quand j'affiche en hexa, j'ai bien le code 0x82 pour le é (130 en decimal). la seul solution que j'ai trouvé est de faire un replace des caractère (éèêù).

    Je suis étonné quand même qu'aucun utilisateur a eu de problème d'accent sur un QTableWidget en insérant des données présentent dans une variable de type char * ou unsigned char *.

  4. #4
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Points : 558
    Points
    558
    Par défaut
    Bonsoir, essaye quand même en remplacant fromUtf8 par fromLatin1 et/ou fromLocal8Bit.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut
    La seule solution que j'ai trouvé est de remplacer tous les caractères accentués par les mêmes sans accent avec un replace du QByteArray.

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

Discussions similaires

  1. Problème d'accent avec fgets
    Par d.w.d dans le forum Langage
    Réponses: 2
    Dernier message: 31/03/2006, 07h37
  2. [utf-8] problème d'accents avec gtk+
    Par over_score dans le forum Général Python
    Réponses: 3
    Dernier message: 14/12/2005, 01h43
  3. [C#] Problème accents avec HttpWebRequest
    Par aucean dans le forum C#
    Réponses: 2
    Dernier message: 03/12/2005, 14h40
  4. Problèmes d'accent avec une connexion ODBC et ADO
    Par michael.jacques dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2005, 15h36
  5. Ecrire caractère avec les accents avec vi ?
    Par sekiryou dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 18/05/2004, 17h11

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