Table de caractères Unicode, gratuite
Parcourez les caractères Unicode par catégorie, recherchez par nom ou point de code, et copiez dans le presse-papiers.
Comment utiliser
- Cliquez sur un onglet de catégorie pour afficher les caractères de ce groupe.
- Cliquez sur un caractère pour voir ses détails et les options de copie.
- Utilisez la barre de recherche pour trouver des caractères par nom (ex. « heart ») ou code hex (ex. « 2665 »).
- Cliquez sur Copier le caractère pour copier le caractère sélectionné dans le presse-papiers.
Questions fréquentes
Qu'est-ce qu'un point de code Unicode ?
Un point de code Unicode est un numéro unique attribué à chaque caractère du standard Unicode. Il s'écrit au format hexadécimal, souvent préfixé par U+ (par ex. U+2665 pour ♥).
Qu'est-ce qu'une entité HTML ?
Une entité HTML est un code spécial qui représente un caractère en HTML. Par exemple, ♥ représente ♥. Les entités sont utiles lorsqu'il n'est pas possible de taper directement un caractère.
Qu'est-ce que le code CSS ?
Le code CSS utilise la notation \\ pour insérer un caractère à partir de son point de code Unicode dans les feuilles de style. Par exemple, .heart::before { content: "\\2665"; } insère ♥.
Une brève histoire d'Unicode
Avant Unicode, chaque région avait son propre encodage de caractères incompatible : ASCII pour l'anglais, la famille ISO 8859 pour les langues européennes (8859-1 Latin-1, 8859-5 cyrillique, 8859-6 arabe), les pages de code Windows 1252 / 1251 / 1253-1258, les jeux multioctets pour les langues d'Asie de l'Est (Shift-JIS pour le japonais, Big5 pour le chinois traditionnel, GB2312 pour le chinois simplifié, EUC-KR pour le coréen). Les encodages incompatibles produisaient du texte brouillé connu sous le terme japonais mojibake (文字化け, « transformation de caractères ») : ouvrir une page japonaise dans le mauvais encodage donnait des rangées de points d'interrogation ou des lettres Latin-1 aléatoires.
Le travail a commencé en 1987 chez Xerox. Joe Becker, avec Lee Collins et Mark Davis chez Apple, a commencé à étudier un jeu de caractères universel unique qui pourrait remplacer ce patchwork. La proposition préliminaire de Becker d'août 1988, « Unicode 88 », expliquait : « le nom 'Unicode' vise à suggérer un encodage unique, unifié et universel. » Le Consortium Unicode a été constitué en janvier 1991 et a livré Unicode 1.0 en octobre de la même année, avec environ 7 100 caractères répartis sur 24 écritures.
Depuis Unicode 17.0 (publié le 9 septembre 2025), la norme contient environ 159 801 caractères répartis sur 172 écritures, avec un espace de code alloué pour 1 112 064 points de code valides, ce qui signifie qu'Unicode a attribué environ 14 % de son espace possible et dispose de décennies de marge. Jalons récents majeurs : Unicode 6.0 (2010) a été la première version à encoder formellement les emojis (722 d'entre eux, repris des opérateurs japonais) ; Unicode 17.0 a ajouté quatre nouvelles écritures (Sidétique, Tolong Siki, Beria Erfe, Tai Yo) et a porté le nombre total d'idéogrammes CJC au-delà de 100 000.
Points de code, plans et encodages
Un point de code n'est qu'un nombre, écrit en hexadécimal avec un préfixe U+, comme U+2665 pour ♥. Les points de code sont regroupés en 17 plans de 65 536 points de code chacun. Presque tout ce que vous avez jamais lu se trouve sur le Plan 0, le Plan multilingue de base (BMP, U+0000 à U+FFFF). Le Plan 1 (le Plan multilingue supplémentaire) contient les écritures historiques (linéaire B, hiéroglyphes égyptiens, cunéiforme), la notation musicale et presque tous les emojis. Les Plans 2 et 3 sont des extensions d'idéogrammes CJC. Les Plans 4-13 ne sont pas attribués, réservés pour l'avenir. Le Plan 14 porte les sélecteurs de variation et les modificateurs d'emoji. Les Plans 15 et 16 sont des zones à usage privé où les polices et les applications attribuent leurs propres significations.
Un point de code n'est qu'un nombre ; un encodage est la façon dont ce nombre est stocké en octets. Unicode en définit trois :
- UTF-8 : largeur variable, de 1 à 4 octets par caractère. Conçu par Ken Thompson et Rob Pike aux Bell Labs en 1992 (esquissé sur un set de table de restaurant du New Jersey). Les 128 premiers points de code (ASCII) occupent exactement 1 octet avec la même valeur binaire qu'ASCII, donc un fichier purement ASCII est déjà un fichier UTF-8 valide. En janvier 2026, UTF-8 est utilisé par environ 98,9 % des sites web, l'encodage recommandé par le WHATWG et la valeur par défaut pour les nouveaux protocoles de texte.
- UTF-16 : largeur variable, 2 ou 4 octets. Les caractères du BMP prennent 2 octets ; les caractères des plans supplémentaires prennent 4 octets via des paires de substitution (un substitut haut U+D800-U+DBFF plus un substitut bas U+DC00-U+DFFF). Utilisé en interne par les API Windows, Java, JavaScript (le
.lengthd'une chaîne compte les unités de code UTF-16, ce qui explique pourquoi un emoji « compte souvent pour 2 ») et Qt. Moins de 0,004 % des pages web publiques l'utilisent comme transport. - UTF-32 : largeur fixe, 4 octets par point de code. Simple à indexer mais peu économe en espace. Utilisé en interne par certains environnements d'exécution Unix pour l'indexation directe des points de code ; rare sur disque ou sur le réseau.
Les 25 caractères d'espacement invisibles
Unicode marque formellement exactement 25 caractères avec la propriété White_Space=yes : l'espace ordinaire (U+0020), la tabulation, le saut de ligne, le retour chariot, l'espace insécable (U+00A0, le fameux qui paraît identique à un espace ordinaire mais ne se coupe pas en fin de ligne), les largeurs typographiques de U+2000-U+200A, les séparateurs de ligne / de paragraphe (U+2028 / U+2029), l'espace fine insécable courante en typographie française (U+202F), l'espace mathématique moyenne (U+205F) et l'espace idéographique pleine largeur (U+3000) utilisée dans le texte CJC.
Plusieurs caractères paraissent invisibles mais ne sont pas classés comme espacement et se comportent différemment d'un espace ordinaire :
- U+200B Espace sans chasse : permet un saut de ligne sans espace visible ; pas un espacement selon la classification Unicode.
- U+200D Liant sans chasse : la colle à l'intérieur des emojis multicaractères comme les séquences de famille ou de profession.
- U+200C Antiliant sans chasse : contrôle la liaison des ligatures.
- U+00AD Trait d'union conditionnel : invisible jusqu'à ce que le moteur de rendu coupe la ligne.
- U+FEFF Indicateur d'ordre des octets : au début d'un fichier, il déclare le boutisme ; au milieu, c'est un espace insécable invisible. Les exports CSV UTF-8 d'Excel en ajoutent un en tête, ce qui apparaît souvent dans les outils en aval comme un caractère de tête inattendu sur l'en-tête de la première colonne.
Ces caractères invisibles sont régulièrement la cause de séances de débogage du type « pourquoi cette chaîne ne correspond-elle pas ? » : collez n'importe quel caractère dans la recherche d'une table de caractères et elle vous indiquera le point de code réel, pour que vous puissiez confirmer si vous avez affaire à un guillemet typographique se faisant passer pour un droit, ou à une espace insécable là où devrait se trouver un espace ordinaire.
Plages de caractères utiles
| Bloc | Plage | Exemples |
|---|---|---|
| Supplément Latin-1 | U+0080-U+00FF | à ñ ü © ® ¥ § ° ¶ |
| Grec | U+0370-U+03FF | α β γ π Σ Ω |
| Cyrillique | U+0400-U+04FF | Russe / Ukrainien / Bulgare, etc. |
| Ponctuation générale | U+2000-U+206F | -, … " " ' ' • † NBSP ZWSP |
| Symboles monétaires | U+20A0-U+20CF | € £ ¥ ₩ ₽ ₹ ₿ |
| Symboles de type lettre | U+2100-U+214F | ™ ℠ № ℃ ℉ ℗ |
| Flèches | U+2190-U+21FF | ← → ↑ ↓ ↔ ⇒ ⇐ |
| Opérateurs mathématiques | U+2200-U+22FF | ∑ ∫ ∞ √ ≠ ≤ ≥ ± ∂ ∇ ∈ ∪ ∩ |
| Filets | U+2500-U+257F | ─ │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ ═ ║ ╔ ╗ |
| Alphanumériques mathématiques | U+1D400-U+1D7FF | Les générateurs de « texte fantaisie » (𝓗𝓮𝓵𝓵𝓸) puisent ici. |
Caractères spéciaux dans l'écriture quotidienne
Le cas d'usage « j'ai juste besoin de taper un symbole » : référence rapide de ce que cet outil existe pour fournir en deux clics :
- Tiret cadratin - U+2014 (
—), coupure au niveau de la phrase. - Tiret demi-cadratin - U+2013 (
–) : plages (1950-1975) et appariements (Boston-Hartford). - Points de suspension … U+2026 (
…), trois points en un seul caractère. - Guillemets typographiques : ouvrant " U+201C, fermant " U+201D, apostrophe ouvrante ' U+2018, fermante ' U+2019.
- Espace insécable U+00A0 (
), garde « 100 km » ensemble. - Copyright © U+00A9, Marque déposée ® U+00AE, Marque commerciale ™ U+2122.
- Section § U+00A7, Pied-de-mouche ¶ U+00B6, Degré ° U+00B0.
- Multiplication × U+00D7, Division ÷ U+00F7, ni l'un ni l'autre n'est la lettre
xou une barre oblique.
Quand recourir à une table de caractères
- Taper des lettres accentuées sans la bonne disposition de clavier : résumé, jalapeño, fiancée, naïve.
- Mathématiques et sciences : coller ∑, ∫, ≠, π, ±, ∞, μ, Ω dans un document sans lancer l'éditeur d'équations.
- Monnaie : le symbole dont vous avez besoin est rarement sur votre clavier. Euro €, yen ¥, peso ₱, roupie ₹.
- Ponctuation dans l'écriture juridique et universitaire : tirets cadratins, guillemets typographiques, le signe de section §, l'obèle †.
- Texte d'affichage fantaisie pour les biographies de réseaux sociaux et l'image de marque : les symboles alphanumériques mathématiques (U+1D400-U+1D7FF) vous permettent de styliser du texte sans utiliser d'image.
- Conception de CLI et de TUI : les caractères de filets pour les bordures en ASCII-art, les programmes ncurses et les diagrammes README.
- Déboguer les bogues d'encodage : collez un caractère pour voir son point de code réel et confirmer si vous avez un guillemet typographique se faisant passer pour un droit.
Sécurité : le problème des homographes
De nombreux caractères Unicode paraissent identiques d'une écriture à l'autre. La minuscule cyrillique « а » (U+0430) est visuellement impossible à distinguer du « a » latin (U+0061). Les attaquants enregistrent des noms de domaine internationalisés qui ressemblent à des légitimes (par exemple un « apple.com » avec un а cyrillique à la place du a latin) et les utilisent pour l'hameçonnage. Une attaque de 2017 sur adoḅe.com utilisait le ḅ point souscrit (U+1E05) pour diffuser un logiciel malveillant. Les navigateurs modernes atténuent cela avec des règles restrictives de mélange d'écritures, en se rabattant sur la forme Punycode ASCII (xn--…) quand un domaine mélange des écritures ; Safari est particulièrement conservateur. La même propriété de ressemblance qui rend Unicode riche pour l'écriture humaine le rend dangereux dans les domaines, et une table de caractères est un moyen de confirmer le point de code réel de chaque caractère d'un coup d'œil.
Plus de questions
Quelle est la différence entre un caractère et un glyphe ?
Un caractère est l'unité abstraite qu'Unicode encode : la lettre A, quelle que soit la police de caractères. Un glyphe est le dessin spécifique de ce caractère dans une police donnée : A en Helvetica, A en Garamond, A en Comic Sans sont tous le même caractère, mais trois glyphes différents. Unicode encode des caractères ; les polices livrent des glyphes.
Pourquoi « 1.0 » compte-t-il 7 000 caractères, mais « 17.0 » en compte 160 000 ?
Unicode 1.0 couvrait 24 écritures, la plupart des systèmes d'écriture vivants du monde alors couramment utilisés en informatique. La croissance depuis vient de trois sources : l'expansion massive de la couverture des idéogrammes CJC (en intégrant des caractères chinois historiques et de rares variantes régionales, l'Extension J en a ajouté 4 298 dans la seule version 17.0), l'encodage formel des écritures historiques (linéaire B, cunéiforme, hiéroglyphes égyptiens, phénicien) et la normalisation des emojis à partir de 2010.
Qu'est-ce qu'une entité HTML ?
Une façon d'encoder un caractère au sein du HTML à l'aide d'une syntaxe d'échappement spéciale. Il y a des entités nommées pour les caractères courants (© pour ©, — pour -) et des entités numériques pour n'importe quel point de code (♥ ou ♥ pour ♥). Elles sont utiles quand taper le caractère directement est malcommode, par exemple dans du code source à encodages mixtes, ou dans un système qui retire le non-ASCII.
Et les échappements CSS ?
Le CSS utilise une barre oblique inverse suivie du point de code hexadécimal : .heart::before { content: "\2665"; } insère ♥. Utile dans le contenu généré ::before / ::after, dans les styles de compteur CSS, et partout où l'on ne peut pas se fier à l'encodage du fichier source.
Quelque chose est-il envoyé à un serveur ?
Non. Les données de caractères sont fournies avec la page ; la recherche et le filtrage par catégorie s'exécutent localement en JavaScript ; Copier utilise l'API Clipboard du navigateur. Rien ne quitte votre appareil, et la page fonctionne hors ligne une fois chargée.