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

IHM Discussion :

Afficher des Émojis dans le contrôle Microsoft Web Browser


Sujet :

IHM

  1. #1
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut Afficher des Émojis dans le contrôle Microsoft Web Browser
    Bonjour,

    Le contrôle Microsoft Web Browser d'un formulaire m'affiche un fil discussion.

    Ce fil discussion est alimenté par le champs "Body" de la table T_Discussion.

    T_Discussion.Body est un Mémo au format Texte brut.

    Dans T_Discussion.Body, je colle du texte qui provient de messages Outlook. Il y a parfois des émojis dans les messages.
    Ces émojis une fois collés sont visibles dans T_Discussion.Body.

    Le problème est quand je affiche "Body" au travers du contrôle Microsoft Web Browser, chaque émoji est transformé en "??"
    Avec cette fonction j'affiche les codes des émojis
    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
    Public Function CodeEmoji()
    Dim cdb As DAO.Database
    Dim oRst As DAO.Recordset
    Dim strSql As String, S As String
    Dim I As Long
        Set cdb = CurrentDb
        strSql = "SELECT T_Message.* FROM T_Message;"
        Set oRst = cdb.OpenRecordset(strSql, dbOpenDynaset)
            Do While Not oRst.EOF
                For I = 1 To Len(oRst!Body)
                    S = Mid(oRst!Body, I, 1)
                    If AscW(S) < 0 Then Debug.Print AscW(S); Asc(S) '   les codes des émojis sont négatifs
                Next I
                oRst.MoveNext
            Loop
        oRst.Close:    Set oRst = Nothing
        cdb.Close:      Set cdb = Nothing
    End Function
    résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    -10179  63 
    -8695  63 
     
    -10179  63 
    -8695  63 
     
    -10179  63 
    -8703  63 
     
    etc...
    63 est le code ASCII du "?" qui est affiché dans le contrôle Microsoft Web Browser.

    Je n'arrive pas à reconstituer le code d' l'émoji à partir des deux parties "-10179" et "-8703"

    Est-ce que quelqu'un à une idée ?

    Merci par avance

  2. #2
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonjour,

    Désolé d'avoir posté sur le forum Requêtes, ma discussion est sans rapport, je ne sais pas la déplacer.

    Bref, j'ai passé le code des 32 premiers émojis à la moulinette dans l'espoir de trouver la fonction qui crée le code de l'émoji à partir des données dont je dispose.

    Je ne trouve pas, merci d'avance à quiconque a une idée.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Code de l'émoji dont j'ai besoin       |   Données dont je dispose issues des fonctions appliquées sur l'émoji.
    n'importe quel codes des 3 ci-dessous  |
    Decimal  ou Hexadécimal ou Unicode     |=AscW(octet 1) et =AscW(octet 2) ou =Decode_UTF8(octet 1 et octet 2)(je suppose!)
              |              |             |                |                 |
    &#128512  |  &H1F600     |  U+1F600    |    -10179     et     -8704       |    61 0 216 0 0 0 222 0 
    &#128513  |  &H1F601     |  U+1F601    |    -10179     et     -8703       |    61 0 216 0 1 0 222 0 
    &#128514  |  &H1F602     |  U+1F602    |    -10179     et     -8702       |    61 0 216 0 2 0 222 0 
    &#128515  |  &H1F603     |  U+1F603    |    -10179     et     -8701       |    61 0 216 0 3 0 222 0 
    &#128516  |  &H1F604     |  U+1F604    |    -10179     et     -8700       |    61 0 216 0 4 0 222 0 
    &#128517  |  &H1F605     |  U+1F605    |    -10179     et     -8699       |    61 0 216 0 5 0 222 0 
    &#128518  |  &H1F606     |  U+1F606    |    -10179     et     -8698       |    61 0 216 0 6 0 222 0 
    &#128519  |  &H1F607     |  U+1F607    |    -10179     et     -8697       |    61 0 216 0 7 0 222 0 
    &#128520  |  &H1F608     |  U+1F608    |    -10179     et     -8696       |    61 0 216 0 8 0 222 0 
    &#128521  |  &H1F609     |  U+1F609    |    -10179     et     -8695       |    61 0 216 0 9 0 222 0 
    &#128522  |  &H1F60A     |  U+1F60A    |    -10179     et     -8694       |    61 0 216 0 10 0 222 0 
    &#128523  |  &H1F60B     |  U+1F60B    |    -10179     et     -8693       |    61 0 216 0 11 0 222 0 
    &#128524  |  &H1F60C     |  U+1F60C    |    -10179     et     -8692       |    61 0 216 0 12 0 222 0 
    &#128525  |  &H1F60D     |  U+1F60D    |    -10179     et     -8691       |    61 0 216 0 13 0 222 0 
    &#128526  |  &H1F60E     |  U+1F60E    |    -10179     et     -8690       |    61 0 216 0 14 0 222 0 
    &#128527  |  &H1F60F     |  U+1F60F    |    -10179     et     -8689       |    61 0 216 0 15 0 222 0 
    &#128528  |  &H1F610     |  U+1F610    |    -10179     et     -8688       |    61 0 216 0 16 0 222 0 
    &#128529  |  &H1F611     |  U+1F611    |    -10179     et     -8687       |    61 0 216 0 17 0 222 0 
    &#128530  |  &H1F612     |  U+1F612    |    -10179     et     -8686       |    61 0 216 0 18 0 222 0 
    &#128531  |  &H1F613     |  U+1F613    |    -10179     et     -8685       |    61 0 216 0 19 0 222 0 
    &#128532  |  &H1F614     |  U+1F614    |    -10179     et     -8684       |    61 0 216 0 20 0 222 0 
    &#128533  |  &H1F615     |  U+1F615    |    -10179     et     -8683       |    61 0 216 0 21 0 222 0 
    &#128534  |  &H1F616     |  U+1F616    |    -10179     et     -8682       |    61 0 216 0 22 0 222 0 
    &#128535  |  &H1F617     |  U+1F617    |    -10179     et     -8681       |    61 0 216 0 23 0 222 0 
    &#128536  |  &H1F618     |  U+1F618    |    -10179     et     -8680       |    61 0 216 0 24 0 222 0 
    &#128537  |  &H1F619     |  U+1F619    |    -10179     et     -8679       |    61 0 216 0 25 0 222 0 
    &#128538  |  &H1F61A     |  U+1F61A    |    -10179     et     -8678       |    61 0 216 0 26 0 222 0 
    &#128539  |  &H1F61B     |  U+1F61B    |    -10179     et     -8677       |    61 0 216 0 27 0 222 0 
    &#128540  |  &H1F61C     |  U+1F61C    |    -10179     et     -8676       |    61 0 216 0 28 0 222 0 
    &#128541  |  &H1F61D     |  U+1F61D    |    -10179     et     -8675       |    61 0 216 0 29 0 222 0 
    &#128542  |  &H1F61E     |  U+1F61E    |    -10179     et     -8674       |    61 0 216 0 30 0 222 0 
    &#128543  |  &H1F61F     |  U+1F61F    |    -10179     et     -8673       |    61 0 216 0 31 0 222 0

  3. #3
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    Une solution en img
    Images attachées Images attachées  

  4. #4
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Merci hyperion13 pour ta réponse,

    mais je ne comprends pas ce que tu as écris sur l'image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txtemoji = ChrW(-10179)_ChrW(-8695) " - " ChrW(-10179) ChrW(-8703)

    Je réexplique :
    Les émojis sont codés sur plusieurs octets (2-3-4) pour 1 caractère (l'émoji).

    Lorsque j'insère l'émoji dans le fichier html, au lieu d'avoir le code, j'ai un ? par octet soit pour 😁 : ??

    Ce qui insère dans le fichier html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="message">??</div>
    Je dois à partir des données de l'émoji (-10179 et -8695) ou (61 0 216 0 9 0 222 0) dont je dispose, retrouver le code &#128521 puis
    remplacer les ?? par &#128521 au moment de l'insertion dans le fichier html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="message">&#128521</div>
    et qui affiche 😁

    Donc je recherche une formule pour passer de
    (-10179 -8695) ou (61 0 216 0 9 0 222 0)
    à
    (&#128521) ou (&H1F609) (ces deux codes sont identiques, le premier est décimal, le second est hexadécimal.)

    Merci d'avance pour vos propositions.

  5. #5
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Trouvé,

    C'est pour les émojis genre sourire, j'ai pas vérifie avec les autres

    Le premier émoji a pour code Je fais AscW sur le second octet auquel j’additionne 8704 ce qui donne x
    J'additionne x à 128512 ce qui donne le code de l'émoji du message.
    Finish !
    j'ai quand même fait fumer Excel pendant 3 jours avant de trouver ce bidouillage !
    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
    Do While Not oRst.EOF
        strMessage = vbNullString
        StrText = oRst!Body '  le message est recopié octet par octet dans strMessage, 
    '                                  si l'octet est négatif c'est un émoji, pas de recopie, 
    '                                  le second octet détermine le rang d'où le code est déduit et 
    '                                  ajouté au message puis reprise de la recopie octet par octet jusqu'à la fin du message.
     
        For I = 1 To Len(StrText)
            C = Mid(StrText, I, 1)
            If AscW(C) < 0 Then '      c'est un émoji
                For J = I To I + 1
                    If J = I + 1 Then
                        C = Mid(StrText, J, 1)
                        X = AscW(C) + 8704
                        emoji = "&#" & 128512 + X & ";"
                        strMessage = strMessage & emoji
                    End If
                Next J
                I = J - 1
            Else
                strMessage = strMessage & C
            End If
        Next I
        strMessage = encodeUtf8(strMessage)
    Loop
    Merci à tous ceux qui ont cherché une solution.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/03/2010, 15h11
  2. Afficher des valeurs dans ma page web
    Par tupac-et-you dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 20/06/2008, 15h38
  3. [C/C++] afficher des doubles dans une message box
    Par lalaurie40 dans le forum MFC
    Réponses: 1
    Dernier message: 24/05/2005, 14h55
  4. [C#] Afficher des images dans un datagrid
    Par mbibim63 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/05/2005, 12h22
  5. [BDE] Afficher des données dans un TDBComboBox
    Par $grm$ dans le forum C++Builder
    Réponses: 6
    Dernier message: 30/09/2004, 10h37

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