Convertisseur d'emoji vers Unicode
Collez un emoji, ou une phrase entière qui en contient, et obtenez tous les formats dont un développeur a besoin : points de code Unicode, entités HTML, échappements CSS et JavaScript, Python et octets UTF-8 bruts. L'outil fonctionne aussi dans l'autre sens. Tout s'exécute dans votre navigateur, et le compteur de longueur montre pourquoi un seul emoji peut compter sept caractères dans un langage et vingt-huit octets dans un autre.
- Caractères visibles
- 3
- Points de code (len de Python)
- 6
- Unités UTF-16 (.length en JS)
- 10
- Octets UTF-8
- 22
| Points de code Unicode | U+1F44D U+1F3FD U+2764 U+FE0F U+1F1EF U+1F1F5 | |
|---|---|---|
| Entité HTML (hexadécimale) | 👍🏽❤️🇯🇵 | |
| Entité HTML (décimale) | 👍🏽❤️🇯🇵 | |
| Propriété CSS content | \1F44D \1F3FD \2764 \FE0F \1F1EF \1F1F5 | |
| JavaScript (ES6) | \u{1F44D}\u{1F3FD}\u2764\uFE0F\u{1F1EF}\u{1F1F5} | |
| UTF-16 (Java, C#, JSON) | \uD83D\uDC4D\uD83C\uDFFD\u2764\uFE0F\uD83C\uDDEF\uD83C\uDDF5 | |
| Python | \U0001F44D\U0001F3FD\u2764\uFE0F\U0001F1EF\U0001F1F5 | |
| Octets UTF-8 | F0 9F 91 8D F0 9F 8F BD E2 9D A4 EF B8 8F F0 9F 87 AF F0 9F 87 B5 | |
| Encodage URL | %F0%9F%91%8D%F0%9F%8F%BD%E2%9D%A4%EF%B8%8F%F0%9F%87%AF%F0%9F%87%B5 |
Huit emojis, quatre longueurs différentes
Chaque ligne ci-dessous correspond à un seul emoji à l'écran. Les autres colonnes indiquent ce que comptent différents langages et bases de données, calculé par le même convertisseur que l'outil ci-dessus.
| Emoji | Points de code | Visibles | Python | JavaScript | Octets UTF-8 |
|---|---|---|---|---|---|
| 😀Un seul point de code | U+1F600 | 1 | 1 | 2 | 4 |
| ❤️Symbole texte et sélecteur de style | U+2764 U+FE0F | 1 | 2 | 2 | 6 |
| 👍🏽Emoji et teint | U+1F44D U+1F3FD | 1 | 2 | 4 | 8 |
| 🇯🇵Deux lettres d'indicateur régional | U+1F1EF U+1F1F5 | 1 | 2 | 4 | 8 |
| 👩💻Assemblé par un liant sans chasse | U+1F469 U+200D U+1F4BB | 1 | 3 | 5 | 11 |
| 1️⃣Chiffre, sélecteur et touche | U+0031 U+FE0F U+20E3 | 1 | 3 | 3 | 7 |
| 🏴Séquence de balises | U+1F3F4 U+E0067 U+E0062 U+E0073 U+E0063 U+E0074 U+E007F | 1 | 7 | 14 | 28 |
| Emoji 18.0 (2026) | U+1FAFA | 1 | 1 | 2 | 4 |
Pourquoi un emoji peut faire sept caractères
Les points de code sont les numéros qu'attribue Unicode, et un emoji peut en assembler plusieurs. Le drapeau de l'Écosse en est l'exemple le plus parlant : un drapeau noir, cinq lettres de balise invisibles qui épellent gbsct et une balise d'annulation, soit sept points de code en tout. JavaScript stocke le texte en UTF-16, où tout ce qui dépasse U+FFFF occupe deux unités : ce même drapeau a donc une .length de 14. UTF-8 consacre quatre octets à chacun de ces points de code, si bien qu'il occupe 28 octets dans une base de données. Un seul de ces nombres correspond à ce que voit une personne, et c'est justement celui que la plupart des programmes ne demandent jamais. En JavaScript, comptez avec Intl.Segmenter en réglant la granularité sur grapheme ; en Python, le motif \X du module tiers regex fait le même travail.
Stocker des emojis dans MySQL sans points d'interrogation
Si vos emojis se transforment en ???? après l'enregistrement, la colonne utilise presque certainement le jeu de caractères utf8 de MySQL, qui, malgré son nom, stocke au maximum trois octets par caractère. Tout emoji au-delà de U+FFFF en demande quatre : l'insertion échoue ou perd les données. La solution s'appelle utf8mb4 : convertissez la table avec ALTER TABLE ... CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, et vérifiez que la connexion elle-même utilise aussi utf8mb4, car une table correcte derrière une connexion utf8 abîme quand même le texte. MySQL 8.0 a fait d'utf8mb4 le réglage par défaut : le problème touche donc surtout les vieilles bases mises à niveau plutôt que créées de zéro.
Entités HTML, CSS et l'espace final
Sur une page servie en UTF-8, c'est-à-dire presque toutes, vous pouvez coller l'emoji directement dans le HTML ; les entités comme 👍 ne servent que lorsqu'un gabarit ou un système d'e-mail abîme les caractères bruts. CSS est plus pointilleux. Dans une propriété content, un échappement comme \1F44D se prolonge jusqu'au premier caractère non hexadécimal : si le caractère suivant peut être lu comme de l'hexadécimal, vous devez terminer l'échappement par une espace. Cette espace est absorbée, pas affichée. Notre ligne CSS l'insère toujours entre les points de code, ce qui explique qu'un pouce levé avec teint donne \1F44D \1F3FD, avec un écart tout à fait voulu.
Pourquoi X compte chaque emoji pour deux caractères
Les limites de caractères sont un autre endroit où les décomptes divergent. La bibliothèque de comptage open source de X compte la plupart des emojis pour deux caractères dans la limite de 280, quelle que soit leur composition : 👍 et 👩💻 coûtent donc autant, alors que l'un est un seul point de code et l'autre en compte trois. Le SMS est plus sévère : un seul emoji fait basculer tout le message en encodage UCS-2, ce qui réduit un SMS de 160 caractères à 70. Si un formulaire, une colonne de base de données ou un réseau social refuse un texte qui paraît court, le tableau des longueurs ci-dessus explique généralement pourquoi.
Glossaire des emojis : points de code, liants et sélecteursCodes courts d'emojis pour Slack, Discord et GitHubTous les emojis à copier
Questions sur les points de code des emojis
Quel est le code Unicode de l'emoji smiley ?
😀 visage souriant correspond à U+1F600. En HTML, écrivez 😀 ; en CSS, \1F600 ; en JavaScript, \u{1F600} ou l'ancienne forme \uD83D\uDE00 ; et en Python, \U0001F600. Collez n'importe quel autre emoji dans le convertisseur pour obtenir ses codes.
Pourquoi un emoji a-t-il deux points de code ?
Beaucoup d'emojis sont des séquences. ❤️ est le symbole cœur U+2764 suivi du sélecteur de style U+FE0F, 👍🏽 est un pouce levé plus un teint, et les drapeaux sont deux lettres. Votre appareil dessine la séquence comme une seule image.
Quelle différence entre \u{1F600} et \uD83D\uDE00 ?
C'est le même emoji. \u{1F600} désigne directement le point de code et fonctionne en JavaScript moderne. \uD83D\uDE00 est la paire de substitution UTF-16, la seule forme qu'acceptent l'ancien JavaScript, Java, C# et JSON pour les caractères au-delà de U+FFFF.
Combien d'octets fait un emoji ?
En UTF-8, quatre octets par point de code au-delà de U+FFFF : un emoji simple comme 😀 fait donc quatre octets. Les séquences s'additionnent : 👍🏽 fait 8 octets, 👩💻 en fait 11 et le drapeau de l'Écosse 28.
Ce convertisseur envoie-t-il mon texte quelque part ?
Non. La conversion s'exécute entièrement dans votre navigateur, en JavaScript. Rien de ce que vous tapez ou collez n'est envoyé ni conservé.
