Comment les ordinateurs représentent le texte
De l'ASCII à Unicode et UTF-8, comment les lettres deviennent des nombres puis des bits — et comment les codes QR transportent du texte de n'importe quelle langue.
Les ordinateurs représentent le texte en transformant chaque caractère en un nombre, puis en stockant ce nombre en binaire — un parcours qui va de l'ASCII des années 1960 jusqu'à l'Unicode et l'UTF-8 modernes. C'est cette même chaîne d'idées qui permet à un code QR de transporter un lien en anglais, un slogan en japonais ou un émoji.
Au fond, un ordinateur n'a aucune idée de ce qu'est une lettre. Il ne stocke que des nombres. Alors comment « bonjour » survit-il au fait d'être saisi, enregistré, envoyé, puis affiché à nouveau sur un autre appareil ? Grâce à une série d'accords sur quel nombre désigne quel caractère. Suivons le texte du schéma le plus simple jusqu'au schéma universel — et voyons comment les codes QR s'y greffent. 🐾
Comment un ordinateur stocke-t-il une lettre ?
Un ordinateur stocke le texte en attribuant un nombre à chaque caractère, puis en enregistrant ce nombre sous forme de bits binaires. La lettre « A » peut devenir le nombre 65, et 65 devient la suite de bits 01000001. Le recueil de règles qui associe les caractères à des nombres s'appelle un encodage de caractères, et ce n'est qu'un accord partagé — le même principe qui sous-tend tout encodage.
Tout ce qui suit dépend du fait que les deux extrémités utilisent le même recueil de règles. Tapez « A », stockez 65, et tant que le lecteur convient lui aussi que 65 signifie « A », la lettre survit à l'aller-retour intacte. Changez de recueil en cours de route et vous obtenez du charabia.
Qu'est-ce que l'ASCII ?
L'ASCII (American Standard Code for Information Interchange) fut la première réponse, extrêmement influente. C'est un encodage sur 7 bits, ce qui veut dire que chaque caractère est un nombre de 0 à 127 — 128 possibilités au total. Cela couvrait les lettres anglaises majuscules et minuscules, les chiffres 0–9, la ponctuation courante, et un ensemble de codes de contrôle invisibles comme « nouvelle ligne » et « tabulation ».
L'ASCII était simple, compact, et suffisant pour l'informatique en langue anglaise pendant des décennies. Comme 7 bits tiennent bien dans un octet (8 bits), chaque caractère ASCII occupait un octet de stockage, avec un bit en réserve. Mais 128 caractères sont loin de suffire pour les écritures du monde — pas de lettres accentuées, pas de grec, pas de chinois, pas d'émoji.
Pourquoi l'ASCII ne suffisait-il pas ?
Le monde écrit avec bien plus de 128 caractères. Les premières tentatives d'étendre l'ASCII utilisaient le huitième bit en réserve pour ajouter 128 cases de plus, produisant des dizaines de « pages de codes » incompatibles — une pour les accents d'Europe occidentale, une autre pour le cyrillique, et ainsi de suite. Le même nombre désignait des caractères différents selon la page de codes supposée, si bien que le texte échangé entre régions tournait fréquemment au non-sens.
Ce dont le monde avait besoin, c'était d'un catalogue universel unique où chaque caractère — de chaque langue, plus les symboles et les émoji — avait une identité unique et non ambiguë. Ce catalogue, c'est Unicode.
L'ASCII a donné à chaque caractère anglais un nombre. Unicode donne à chaque caractère de chaque système d'écriture un nombre. UTF-8 est la manière astucieuse de stocker ces nombres efficacement.
Qu'est-ce qu'Unicode ?
Unicode est un jeu de caractères géant et universel qui attribue à chaque caractère un nombre unique appelé point de code. Le « A » latin, l'« Ω » grec, le « あ » japonais et l'émoji 😀 reçoivent chacun leur propre point de code, et cette identité ne change jamais d'un système ou d'une langue à l'autre.
Fait important, Unicode est un catalogue, pas un format de stockage. Il dit « ce caractère est le point de code numéro tant », mais il ne dicte pas comment ranger ce nombre en octets. Et pour rester compatible avec le passé, les 128 premiers points de code d'Unicode sont identiques à l'ASCII — de sorte que le texte en anglais courant porte les mêmes nombres dans les deux. La question de savoir comment réellement stocker ces points de code, c'est là qu'UTF-8 entre en scène.
Qu'est-ce qu'UTF-8 et pourquoi l'a-t-il emporté ?
UTF-8 est la manière dominante de stocker les points de code Unicode sous forme d'octets, et c'est une conception véritablement élégante. C'est un encodage à longueur variable : les caractères courants prennent moins d'octets, les plus rares en prennent davantage.
- Les caractères ASCII d'origine ne prennent qu'1 octet chacun — de sorte que tout texte en anglais courant est automatiquement de l'UTF-8 valide, inchangé.
- La plupart des autres caractères courants, dont les lettres latines accentuées, le grec, le cyrillique et l'hébreu, prennent 2 octets.
- Des caractères comme le chinois, le japonais et le coréen prennent généralement 3 octets.
- Les émoji et les symboles plus rares prennent 4 octets.
UTF-8 a conquis le web pour de bonnes raisons : il est entièrement rétrocompatible avec l'ASCII, il ne gaspille aucun espace sur les textes riches en anglais, et pourtant il peut représenter chaque caractère d'Unicode. Aujourd'hui, l'immense majorité des pages web sont servies en UTF-8. C'est le standard universel discret qui permet à une page de mêler librement les langues.
Comment les codes QR transportent-ils le texte ?
Un code QR stocke des bits, donc pour transporter du texte il lui faut un encodage de caractères, comme à tout ordinateur. La norme QR définit plusieurs modes d'encodage ajustés à différents contenus — un mode numérique pour les chiffres, un mode alphanumérique pour un ensemble limité de lettres majuscules et de symboles (efficace pour des choses comme des URL en majuscules), et un mode octet pour des données arbitraires.
Ce mode octet est la clé du texte multilingue : il transporte couramment de l'UTF-8, ce qui signifie qu'un code QR peut contenir n'importe quel caractère Unicode — japonais, arabe, émoji, tout — exactement comme le ferait une page web. Quand votre scanner lit un code contenant du texte non anglais et l'affiche correctement, il décode ces octets UTF-8 pour retrouver les points de code puis les caractères. Les détails se trouvent dans les modes d'encodage des codes QR et encodage de caractères et codes QR.
Pourquoi le mode d'encodage compte-t-il pour la capacité ?
Les différents modes coûtent un nombre différent de bits par caractère, si bien que l'encodage affecte directement la quantité qui tient dans un code. Les chiffres purs se tassent serré ; l'ensemble alphanumérique restreint est assez efficace ; le mode octet en UTF-8 complet est le plus souple mais utilise plus de bits par caractère, surtout pour les écritures multi-octets.
C'est pourquoi un code QR contenant une courte URL en anglais peut rester petit et clairsemé, tandis que le même code, de taille identique, contenant un paragraphe en chinois doit être plus dense ou plus grand. Le compromis entre ce que vous encodez et la place que cela prend est détaillé dans la capacité de données d'un code QR. Choisir le bon mode pour votre contenu garde les codes petits et faciles à scanner.
La représentation du texte en une phrase
Les ordinateurs stockent le texte sous forme de nombres en binaire, à l'aide d'encodages partagés qui ont grandi de l'ASCII sur 7 bits jusqu'aux points de code Unicode universels stockés efficacement en UTF-8 — le même schéma que les codes QR utilisent en mode octet pour transporter n'importe quelle langue de la planète.
Envie d'encoder votre propre texte dans une grille scannable ? Vous pouvez créer un code QR gratuit avec QR Puppy — il gère le texte multilingue et les émoji sans le moindre souci.
Questions fréquentes
Quelle différence entre Unicode et UTF-8 ?
Unicode est le catalogue qui donne à chaque caractère un nombre unique appelé point de code, tandis qu'UTF-8 est une manière précise de stocker ces nombres sous forme d'octets. Unicode dit quelle est l'identité d'un caractère ; UTF-8 décide combien d'octets il faut pour l'enregistrer.
L'ASCII est-il encore pertinent ?
Tout à fait. Ses 128 premiers caractères sont identiques à ceux d'Unicode, et UTF-8 les stocke sur un seul octet, si bien que tout texte en anglais courant est automatiquement de l'UTF-8 valide. L'ASCII perdure comme le noyau compatible de l'encodage moderne.
Un code QR peut-il contenir du texte non anglais ?
Oui. En utilisant le mode octet avec UTF-8, un code QR peut transporter n'importe quel caractère Unicode, y compris le chinois, l'arabe et les émoji. Le scanner décode les octets UTF-8 pour retrouver les caractères d'origine, exactement comme le fait un navigateur web.
Pourquoi le même caractère apparaît-il parfois comme des symboles brouillés ?
Parce que le lecteur a utilisé un encodage différent de celui prévu par l'auteur : les nombres ont donc été interprétés avec le mauvais recueil de règles. Se mettre d'accord sur l'UTF-8 entre les systèmes est ce qui évite ce problème courant de « mojibake ».
Le texte multilingue rend-il un code QR plus gros ?
C'est possible. Les caractères non anglais prennent souvent plusieurs octets en UTF-8, si bien qu'un code qui les contient transporte plus de bits et devient plus dense, ou nécessite une version plus grande que la même quantité de texte en anglais courant.
Créez un QR code de façon honnête 🐾
Gratuit pour toujours, sans suivi, sans expiration — généré directement dans votre navigateur.