Smileys python

a marqué ce sujet comme résolu.

Bonsoir chers amis j’ai a ma possession des textes qui contiennent des smileys et lorsque j’ai enregistrer ces textes dans ma base de données j’obtiens des carrés a la place des smileys. Mon objectif c’est de parcourir le texte et de mettre a la place des carrés une image, j’aimerais savoir ces carrés représentes quels caractères.

Merci.

Hmmm, tu as peut-être un problème d’encodage. Essaye ord pour voir si le carré est bien la représentation du Smiley et donc que le smiley est correctement stocké.

Il me semble avoir vu passer la question l’année dernière. Et qu’il fallait définir l’encodage de la table en utf8mb4 pour pouvoir stocker la variable correctement.

Coucou melo \o

Tu sais que par exemple cet emoji 🍌 est un caractère ?
C’est de l’Unicode. Maintenant si tu récupères ce caractère en python, il est certainement codé en UTF-8 (Unicode sur 8-bit par défaut).

Donc ce que tu dois faire, c’est t’assuré que tout le monde utilise UTF-8. Par tout le monde, je veux dire, l’entrée doit être UTF-8 (ce qui semble déjà être le cas car l’entré contiens des emojis), le traitement doit supporté l’UTF-8 (Tu utilises python donc ça devrait être le cas si tu fais rien de spécial), que la BDD support l’UTF-8. Normalement quand tu crées ta base de donnée, tu spécifies (ou peux spécifier) la "locale" et donc le char-set. Et enfin la méthode que tu utilises pour lire la BDD doit supporter UTF-8 (ce qui est généralement le cas).

Donc le plus probable, c’est que ta BDD n’ai pas été configuré pour supporter l’UTF-8. Il faut le faire et ça devrait être bon.

Sinon, tu as pleins de table caractère UTF-8 -> Code point sur internet. Mais j’avoue qu’elles sont assez difficile à utiliser. Bon courage !

+0 -0

Sqlite3 ne support que l’unicode.

Ça vient forcément d’ailleurs donc. Comment écris/lis-tu la BDD sqlite ?

+0 -0

Voici comment je procède pour écrire/lire dans la base:

cursor.execute('''INSERT INTO COMMENTAIRES (IDCommentateur, IDpost, message, dateCommentaire)
VALUES (?, ?, ?, ?);''', (numeroCommentateur, numeroPost, commentaire, dateCommentaire))


resultats = cursor.execute("""SELECT IDCommentaire, COMMENTATEURS.IDCommentateur, nom, adressePhoto, message, dateCommentaire
FROM COMMENTAIRES, COMMENTATEURS  WHERE COMMENTAIRES.IDpost = """ + numeroPost.text()+ """ AND COMMENTAIRES.IDCommentateur = COMMENTATEURS.IDCommentateur
LIMIT 10 OFFSET """ + str(self.OFFSET_COMMENTAIRE)+ """;""").fetchall()

C’est dans message que les smileys sont, et j’aimerais afficher message dans un qtextedit avec les smileys.Merci pour vos réponses.

+0 -0

A-312 ça ne passe pas avec sqlite3.

L’idée que j’ai eu c’est de telecharger les smileys et ensuite parcourir mon texte et remplacer les carrés par le smiley correspondant. Lorsque j’ai utiliser ord() de python j’ai vue que le carré avait une valeur de 128563 et aussi certains avait une valeur de 128521. Quelles sont les valeurs possible que peut prendre ces carrés? Pour pouvoir tous les enlevés et les remplacer par le smiley correspondant merci.

Ok je vais faire une recherche pour voir les polices supportant les smileys.

Si je comprends bien je remplace la police de mon qtextEdit en la police que je vais trouver est-ce ça? Merci pour ta réponse.

Mais peut tu me donner le nom d’une police supportant les smileys merci.

+0 -0

@A-312: On est pas sur du MySQL mais sur du sqlite3 qui ne supporte rien d’autres que l’unicode (et a raison !)

Google Noto color Emoji est une police qui supporte les emojis (oui car on appelle ça des emojis pas des smileys). Existe en plusieurs versions moi je prend la vielle version avec les blobs (2017).

Mais il y a aussi EmojiOne (de twitter il me semble). Mais également Apple emoji, que je n’ai pas cherché mais qui doit existé ou celle de Mozilla que je n’ai jamais essayé mais dont le renard est super classe ! Après il y a celles que je ne connais pas de tête mais Facebook doit avoir la sienne et de même pour Microsoft.

Et franchement en coloré, je pense qu’à une ou deux près tu les a toutes là (modulo plusieurs version de la même font).

Je recommande la Noto. Car c’est celle que j’utilise et je sais que ça marche. En espérant que ça puisse t’aider.

+0 -0

Ok j’ai vu je l’ai installer maintenant comment faire pour l’utiliser. j’ai changer le stylesheet de mon qtextedit en mettant ça:

text.setStyleSheet("QTextEdit{color: blue; font-size: 16px; font-weight: bold; background-color: white; font-family: NotoEmoji-Regular.ttf;}")

Mais rien ne marche. Merci

+0 -0

Tu utilises un QTextEdit ? Désolé mais :/

La doc ! Après, il y a certainement des exemples sur internet de comment ça doit marcher.

+0 -0

Si remplis le QTextEdit à la main avec des emojis ? En copian collant cet emoji : 🍍 il s’affiche correctement ?

Si tu extrais la chaine de caractère du QTextEdit et que tu affiches directement la valeur de chacun des caractères ?

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte