Character codes — ASCII and Unicode · Codes de caractères — ASCII et Unicode
| English | Français |
|---|---|
| Unicode/ˈjuːnɪkəʊd/ | Unicode |
| character set/ˈkærɪktə set/ | ensemble de caractères |
| ASCII/ˈæski/ | ASCII |
| encoding/enˈkəʊdɪŋ/ | encodage |
| code point/kəʊd pɔɪnt/ | code ponctuel |
| UTF-8/ˌjuː tiː ˈef eɪt/ | UTF-8 |
The email that arrived as gibberish
- Through the 1990s, a message typed in Warsaw and read in Tokyo often arrived as a wall of nonsense. Both computers stored eight bits per character. They simply disagreed about what the top 128 patterns meant.
- Poland's code page put Polish letters there. Japan's put its own characters there. Nothing was corrupted in transit: the bytes arrived intact and were read against a different table.
- The fix was to stop having tables per country and give every character in every script one number, for ever. That is Unicode 统一码, and it is why the emoji you send arrives as the same picture.
- This lesson is how text becomes numbers: character sets 字符集, ASCII, Unicode, and the encodings that store them.
Le courriel arrivé en charabia
- Dans les années 1990, un message tapé à Varsovie et lu à Tokyo arrivait souvent sous forme de mur de nonsens. Les deux ordinateurs stockaient huit bits par caractère. Ils s'accordaient simplement mal sur ce que signifiaient les 128 premiers motifs supérieurs.
- La table de caractères polonaise y plaçait des lettres polonaises. Celle japonaise y plaçait ses propres caractères. Rien n'a été corrompu en transit : les octets sont arrivés intacts et lus selon une table différente.
- La solution a consisté à arrêter d'avoir des tables par pays et à donner à chaque caractère de tout alphabet un numéro, pour toujours. C'est Unicode 统一码, et c'est pourquoi l'émoji que vous envoyez arrive comme la même image.
- Cette leçon porte sur la manière dont le texte devient des nombres : les ensembles de caractères 字符集, ASCII, Unicode, et les encodages qui les stockent.
A character set gives each character a number
- A computer stores no letters, only numbers. A character set is the set of characters a computer can represent, each with its own binary code.
- The number for one character is its code point 码点.
Ais 65,ais 97,0the digit is 48. - The code point is not the character's meaning; it is an agreed label. Text is readable only because both machines use the same character set.
The letter is the picture; the byte is the number
Un ensemble de caractères donne un numéro à chaque caractère
- Un ordinateur ne stocke pas de lettres, seulement des nombres. Un ensemble de caractères est l'ensemble des caractères qu'un ordinateur peut représenter, chacun avec son propre code binaire.
- Le numéro d'un caractère est son point de code 码点.
Aest 65,aest 97,0le chiffre est 48. - Le point de code n'est pas le sens du caractère ; c'est une étiquette convenue. Le texte n'est lisible que parce que les deux machines utilisent le même ensemble de caractères.

La lettre est l'image ; le byte est le nombre
A character is stored as a number · Un caractère est stocké sous forme de nombre
Each character has a code number — 'A' is 65. Flip the bits to see that code in binary and hex, exactly how the computer holds it. · Chaque caractère possède un numéro de code : 'A' vaut 65. Inversez les bits pour voir ce code en binaire et en hexadécimal, exactement comme l'ordinateur le conserve.
A character set such as ASCII defines: · Un ensemble de caractères tel que ASCII définit :
A character set maps each character to a number (its code point), which is what the computer actually stores. · Un ensemble de caractères associe chaque caractère à un nombre (son point de code), ce qui est ce que l'ordinateur stocke réellement.
ASCII
- ASCII ASCII码, the American Standard Code for Information Interchange, uses 7 bits, giving $2^7 = 128$ code points: the basic Latin letters, digits, punctuation, and 32 control codes such as carriage return.
- Extended ASCII uses 8 bits, giving 256 code points. The lower 128 are identical to ASCII; the upper 128 vary by region, which is exactly what broke that email.
- You are never asked to memorise a code, but you are asked for the counts: 7 bits, 128; 8 bits, 256.
ASCII
- ASCII ASCII码, the American Standard Code for Information Interchange, utilise 7 bits, offrant $2^7 = 128$ points de code : les lettres latines de base, les chiffres, la ponctuation et 32 codes de contrôle tels que le retour chariot.
- Extended ASCII (ASCII étendu) utilise 8 bits, offrant 256 points de code. Les 128 premiers sont identiques à ASCII ; les 128 supérieurs varient selon la région, ce qui est exactement ce qui a causé l'erreur dans cet e-mail.
- Vous n'êtes jamais demandé de mémoriser un code, mais on vous demande les comptages : 7 bits, 128 ; 8 bits, 256.
How many different code points does 7-bit ASCII have? · Combien de points de code différents l'ASCII sur 7 bits possède-t-il ?
7 bits give $2^7 = 128$ code points. · 7 bits donnent $2^7 = 128$ points de code.
How many different code points does extended ASCII have? · Combien de points de code différents l'ASCII étendu possède-t-il ?
Eight bits give 2^8 = 256. The lower 128 match plain 7-bit ASCII; the upper 128 vary by region. · Huit bits donnent 2^8 = 256. Les 128 inférieurs correspondent à l'ASCII standard sur 7 bits ; les 128 supérieurs varient selon la région.
Unicode
- Unicode is a universal character set: one code point for almost every character in every script alive or dead, plus symbols and emoji, over 149,000 of them.
- The code point is separate from how it is stored. An encoding 编码 turns a code point into bytes.
- UTF-8 UTF-8编码 uses 1 to 4 bytes per character and is ASCII-compatible: the first 128 code points are one byte, identical to ASCII. UTF-16 uses 2 or 4 bytes; UTF-32 uses a fixed 4.
Unicode
- Unicode est un jeu de caractères universel : un code point pour presque chaque caractère dans chaque script vivant ou mort, ainsi que des symboles et emojis, plus de 149,000 au total.
- Le point de code est séparé de sa manière de stockage. Une encodage 编码 convertit un point de code en octets.
- UTF-8 UTF-8编码 utilise de 1 à 4 octets par caractère et est compatible ASCII : les 128 premiers points de code occupent un seul octet, identique à ASCII. UTF-16 utilise 2 ou 4 octets ; UTF-32 utilise un fixe de 4.
Which is true of UTF-8? · Que peut-on dire de UTF-8 ?
UTF-8 is a variable-length Unicode encoding (1–4 bytes); its first 128 code points match ASCII, so plain ASCII text is valid UTF-8. · UTF-8 est un codage Unicode à longueur variable (1–4 octets) ; ses 128 premiers points de code correspondent à ASCII, donc le texte ASCII simple est valide UTF-8.
What is the relationship between Unicode and UTF-8? · Quelle est la relation entre Unicode et UTF-8 ?
The set assigns the numbers; the encoding decides how many bytes each number takes. UTF-16 and UTF-32 are other encodings of the same set. · L'ensemble assigne les numéros ; le codage décide combien d'octets prend chaque numéro. UTF-16 et UTF-32 sont d'autres codages du même ensemble.
Worked example: compare ASCII and Unicode
- Give one advantage and one disadvantage of using Unicode instead of ASCII. [2]
- Advantage: Unicode represents far more characters, so text in any script, Chinese, Arabic, Greek, and emoji can be stored, and a single document can mix languages; files are portable because there is no per-country code page to disagree about.
- Disadvantage: for English-only text a Unicode file is usually larger, because a character may take more than one byte.
- Both halves are needed. "It has more characters" alone is one mark of two.
Exemple résolu : comparer ASCII et Unicode
- Donnez un avantage et un inconvénient d'utiliser Unicode au lieu d'ASCII. [2]
- Avantage : Unicode représente beaucoup plus de caractères, donc du texte dans n'importe quel alphabet, chinois, arabe, grec, et des émojis peut être stocké, et un document unique peut mélanger des langues ; les fichiers sont portables car il n'y a pas de page de code par pays à s'accorder sur.
- Inconvénient : pour du texte uniquement en anglais, un fichier Unicode est généralement plus grand, car un caractère peut prendre plus d'un octet.
- Les deux moitiés sont nécessaires. "Il a plus de caractères" seul vaut une marque sur deux.
A key advantage of Unicode over ASCII is that it: · Un avantage clé d'Unicode par rapport à ASCII est qu'il :
Unicode covers nearly every writing system plus symbols and emoji — far beyond ASCII's basic English set. · Unicode couvre presque tous les systèmes d'écriture ainsi que des symboles et des émojis — bien au-delà de l'ensemble anglais basique d'ASCII.
For English-only text, a Unicode file is usually larger than the same text in ASCII. · Pour un texte uniquement en anglais, un fichier Unicode est généralement plus grand que le même texte en ASCII.
Unicode encodings can use more bytes per character, so plain English text is usually larger than in 7-bit ASCII — the trade-off for universal coverage. · Les codages Unicode peuvent utiliser plus d'octets par caractère, donc le texte anglais simple est généralement plus volumineux qu'en ASCII sur 7 bits — le compromis pour une couverture universelle.
Which are advantages of Unicode over ASCII? Select all · tout that apply. · Quels sont les avantages d'Unicode par rapport à ASCII ? Sélectionnez tous ceux qui s'appliquent.
Size is the trade-off, not a benefit: for plain English a Unicode file is usually larger. · La taille est le compromis, pas un avantage : pour du texte ASCII simple, un fichier Unicode est généralement plus grand.
Worked example: the size of a text file
- A message of 500 characters is stored in extended ASCII. How large is the file in bytes?
- Extended ASCII uses 8 bits, one byte, per character, so $500 \times 1 = 500$ bytes, or $500 \times 8 = 4000$ bits.
- The same message in UTF-32? Four bytes per character, so 2000 bytes.
- Show the bits-per-character, multiply, then convert once. Mixing bits and bytes halfway through is the usual lost mark.
Exemple résolu : la taille d'un fichier texte
- Un message de 500 caractères est stocké en extended ASCII. Quelle est la taille du fichier en octets ?
- Extended ASCII utilise 8 bits, un octet, par caractère, soit $500 \times 1 = 500$ octets, ou $500 \times 8 = 4000$ bits.
- Le même message en UTF-32 ? Quatre octets par caractère, soit 2000 octets.
- Montrez les bits par caractère, multipliez, puis convertissez une seule fois. Mélanger bits et octets en cours de route est la perte de marque habituelle.
A 500-character message is stored in extended ASCII. How many bytes does it need (ignore any header)? · Un message de 500 caractères est stocké en ASCII étendu. Combien d'octets faut-il (en ignorant tout en-tête) ?
Eight bits, one byte, per character: 500 x 1 = 500 bytes, or 4000 bits. In UTF-32 the same text needs 2000 bytes. · Huit bits, un octet, par caractère : 500 x 1 = 500 octets, ou 4000 bits. En UTF-32, le même texte nécessiterait 2000 octets.
Reading a character in binary and hex
- Because a code point is just a number, it converts like any other.
Ais 65, which is0100 0001in binary and41in hexadecimal. - Two useful patterns: the digits
0to9run from 48, and lower case is 32 more than upper case, soa(97) isA(65) plus 32. That difference is a single bit. - A question that gives you
A= 65 and asks forEwants $65 + 4 = 69$, not a memorised table.
Lire un caractère en binaire et hexadécimal
- Puisqu'un point de code n'est qu'un nombre, il se convertit comme n'importe quel autre.
Aest 65, ce qui est0100 0001en binaire et41en hexadécimal. - Deux motifs utiles : les chiffres
0à9commencent à 48, et le minuscule est 32 de plus que le majuscule, donca(97) estA(65) plus 32. Cette différence est un seul bit. - Une question qui vous donne
A= 65 et demandeEveut $65 + 4 = 69$, pas un tableau mémorisé.
The ASCII code for A is 65. What is the ASCII code for E? · Le code ASCII pour A est 65. Quel est le code ASCII pour E ?
The letters are consecutive, so E is four after A. Nothing has to be memorised beyond one anchor value. · Les lettres sont consécutives, donc E est quatre après A. Il n'y a rien à mémoriser au-delà d'une valeur ancre.
Marks that slip away
- ASCII is 7 bits and 128 code points; extended ASCII is 8 bits and 256. Do not write 8 bits for plain ASCII.
- Unicode is a character set; UTF-8 is an encoding of it. They are not two rival sets.
- UTF-8 is variable length, 1 to 4 bytes, not always one byte and not always four.
- The disadvantage of Unicode is file size for plain English, not "it is slower" or "it is harder to read".
Pièges qui font perdre des points
- ASCII est 7 bits et 128 points de code ; extended ASCII est 8 bits et 256. N'écrivez pas 8 bits pour ASCII simple.
- Unicode est un ensemble de caractères ; UTF-8 est une encodage de celui-ci. Ce ne sont pas deux ensembles rivaux.
- UTF-8 est à longueur variable, 1 à 4 octets, pas toujours un octet et pas toujours quatre.
- L'inconvénient d'Unicode est la taille du fichier pour l'anglais simple, pas "il est plus lent" ou "il est plus difficile à lire".
You've got it
- a character set gives each character a code point; text is numbers plus an agreement about how to read them
- ASCII: 7 bits, 128 code points, English only · extended ASCII: 8 bits, 256, the top half varies by region
- Unicode: one code point for every script and emoji, stored by an encoding; UTF-8 is 1 to 4 bytes and ASCII-compatible
- Unicode gains characters, portability and mixed languages; it costs file size on plain English text
Vous avez compris
- Un ensemble de caractères attribue à chaque caractère un point de code ; le texte est des nombres plus un accord sur la façon de les lire
- ASCII : 7 bits, 128 points de code, anglais uniquement · extended ASCII : 8 bits, 256, la moitié supérieure varie selon la région
- Unicode : un point de code pour chaque alphabet et emoji, stocké via une encodage ; UTF-8 est 1 à 4 octets et compatible ASCII
- Unicode gagne des caractères, la portabilité et les langues mixtes ; cela coûte en taille de fichier sur du texte anglais simple