ARTASCIIcréateur en caractères
Guide pratique · exemples vérifiables

ASCII, Unicode et UTF-8 : quelles différences ?

ASCII est un répertoire de 128 codes. Unicode couvre un ensemble bien plus vaste de caractères. UTF-8 encode les points de code Unicode en octets. Aucun de ces termes ne désigne une police ni ne garantit la largeur d’un dessin.

Choisir pour son dessin

BesoinChoixContrôle
TXT, terminalASCIIEspaces / spacing
♥, ─, █Unicode + UTF-8Police / font
Visuel fixe / fixed imagePNGTexte alternatif / alt text

Pour un logo composé de /, _, | et lettres, l’ASCII suffit. Pour des cadres continus en ─ et │, utilisez Unicode et vérifiez la police du lecteur. Le choix dépend des caractères nécessaires, pas du prestige supposé d’un format.

Caractères et octets : quatre cas concrets

TexteUnicodeUTF-8 hexOctets
AU+0041411
éU+00E9C3 A92
éU+0065 + U+030165 CC 813
♥U+2665E2 99 A53

Premier cas : A conserve le même code numérique en ASCII et Unicode, et occupe un octet UTF-8. Second cas : é peut être représenté par U+00E9 ou par e suivi de l’accent combinant U+0301. Les deux lignes du tableau peuvent sembler identiques tout en contenant des suites de points de code différentes. Les octets sont calculables avec text.encode("utf-8") en Python.

for text in ["A", "é", "é", "♥"]:
    print(repr(text), text.encode("utf-8").hex(" "))

Pourquoi le compteur et l’écran diffèrent

Le compteur du diagnostic ArtASCII compte les points de code, pas les cellules du terminal. Un accent combinant peut se superposer au caractère précédent ; certains caractères occupent une largeur différente selon la police et l’application. La propriété East Asian Width apporte une classification, sans constituer à elle seule un moteur universel de mise en page. Ne calculez donc pas un cadre Unicode uniquement avec la longueur d’une chaîne.

Éviter les confusions fréquentes

Un fichier .txt peut contenir de l’Unicode : l’extension ne définit pas son encodage. Une police monospace ne convertit pas ♥ en ASCII. Enregistrer du texte ASCII en UTF-8 reste compatible pour ces caractères. En revanche, supprimer tous les accents modifie le texte ; faites-le volontairement, en conservant l’original. Pour une bannière FIGlet, la couverture de la police constitue une autre question que l’encodage du fichier.

Sources et suite pratique

Unicode FAQ · UTF-8 — RFC 3629

Tableau ASCII · Diagnostic d’alignement

Pour aller plus loin