Character codes — ASCII and Unicode · Códigos de caracteres — ASCII y Unicode
| English | Español |
|---|---|
| Unicode/ˈjuːnɪkəʊd/ | Unicode |
| character set/ˈkærɪktə set/ | conjunto de caracteres |
| ASCII/ˈæski/ | ASCII |
| encoding/enˈkəʊdɪŋ/ | codificación |
| code point/kəʊd pɔɪnt/ | punto de código |
| 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.
El correo electrónico que llegó como basura
- A lo largo de la década de 1990, un mensaje escrito en Varsovia y leído en Tokio a menudo llegaba como una pared de sin sentido. Ambas computadoras almacenaban ocho bits por carácter. Simplemente no coincidían sobre el significado de los primeros 128 patrones.
- La página de código de Polonia colocaba las letras polacas allí. La de Japón colocaba sus propios caracteres allí. Nada se corrompió durante el tránsito: los bytes llegaron intactos y se leyeron contra una tabla diferente.
- La solución fue dejar de tener tablas por país y asignar un número a cada carácter en cada sistema de escritura, para siempre. Eso es Unicode (统一码), y es la razón por la cual el emoji que envías llega como la misma imagen.
- Esta lección explica cómo el texto se convierte en números: conjuntos de caracteres (字符集), ASCII, Unicode y los codificadores que los almacenan.
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 conjunto de caracteres asigna un número a cada carácter
- Una computadora no almacena letras, solo números. Un conjunto de caracteres es el conjunto de caracteres que puede representar una computadora, cada uno con su propio código binario.
- El número de un carácter es su punto de código (码点).
Aes 65,aes 97, y el dígito0es 48. - El punto de código no es el significado del carácter; es una etiqueta acordada. El texto es legible solo porque ambas máquinas utilizan el mismo conjunto de caracteres.

La letra es la imagen; el byte es el número
A character is stored as a number · Un carácter se almacena como un número
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. · Cada carácter tiene un código numérico: 'A' es 65. Invierte los bits para ver ese código en binario y hexadecimal, exactamente como lo guarda el ordenador.
A character set such as ASCII defines: · Un conjunto de caracteres como ASCII define:
A character set maps each character to a number (its code point), which is what the computer actually stores. · Un conjunto de caracteres asigna a cada carácter un número (su punto de código), que es lo que realmente almacena el ordenador.
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码), el Código Americano Estándar para Intercambio de Información, utiliza 7 bits, lo que da $2^7 = 128$ puntos de código: las letras latinas básicas, dígitos, puntuación y 32 códigos de control como el retorno de carro.
- ASCII extendido utiliza 8 bits, dando 256 puntos de código. Los primeros 128 son idénticos a ASCII; los últimos 128 varían según la región, lo cual es exactamente lo que rompió ese correo electrónico.
- Nunca se te pedirá memorizar un código, pero sí se te pedirán los conteos: 7 bits, 128; 8 bits, 256.
How many different code points does 7-bit ASCII have? · ¿Cuántos puntos de código diferentes tiene ASCII de 7 bits?
7 bits give $2^7 = 128$ code points. · 7 bits dan $2^7 = 128$ puntos de código.
How many different code points does extended ASCII have? · ¿Cuántos puntos de código diferentes tiene ASCII extendido?
Eight bits give 2^8 = 256. The lower 128 match plain 7-bit ASCII; the upper 128 vary by region. · Ocho bits dan 2^8 = 256. Los 128 inferiores coinciden con ASCII estándar de 7 bits; los 128 superiores varían según la región.
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 es un conjunto de caracteres universal: un punto de código para casi cada carácter en cada sistema de escritura vivo o muerto, además de símbolos y emojis, más de 149.000 de ellos.
- El punto de código es independiente de cómo se almacena. Un codificador (编码) convierte un punto de código en bytes.
- UTF-8 (UTF-8编码) usa de 1 a 4 bytes por carácter y es compatible con ASCII: los primeros 128 puntos de código ocupan un byte, idéntico a ASCII. UTF-16 usa 2 o 4 bytes; UTF-32 usa fijos 4.
Which is true of UTF-8? · ¿Qué afirmación es cierta sobre 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 es una codificación Unicode de longitud variable (1–4 bytes); sus primeros 128 puntos de código coinciden con ASCII, por lo que el texto ASCII normal es válido UTF-8.
What is the relationship between Unicode and UTF-8? · ¿Cuál es la relación entre Unicode y 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. · El conjunto asigna los números; la codificación decide cuántos bytes ocupa cada número. UTF-16 y UTF-32 son otras codificaciones del mismo conjunto.
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.
Ejemplo resuelto: comparar ASCII y Unicode
- Da una ventaja y una desventaja de usar Unicode en lugar de ASCII. [2]
- Ventaja: Unicode representa muchos más caracteres, por lo que el texto en cualquier sistema de escritura, chino, árabe, griego y emojis puede almacenarse, y un solo documento puede mezclar idiomas; los archivos son portátiles porque no hay una página de código por país de la que discordar.
- Desventaja: para texto solo en inglés, un archivo de Unicode suele ser más grande, porque un carácter puede ocupar más de un byte.
- Se necesitan ambas partes. "Tiene más caracteres" solo vale una marca de dos.
A key advantage of Unicode over ASCII is that it: · Una ventaja clave de Unicode sobre ASCII es que:
Unicode covers nearly every writing system plus symbols and emoji — far beyond ASCII's basic English set. · Unicode cubre casi todos los sistemas de escritura, además de símbolos y emojis — mucho más allá del conjunto básico de inglés de ASCII.
For English-only text, a Unicode file is usually larger than the same text in ASCII. · Para texto solo en inglés, un archivo Unicode suele ser más grande que el mismo texto 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. · Las codificaciones Unicode pueden usar más bytes por carácter, por lo que el texto en inglés normal suele ser más grande que en ASCII de 7 bits — el compromiso por la cobertura universal.
Which are advantages of Unicode over ASCII? Select all · todos that apply. · ¿Cuáles son ventajas de Unicode sobre ASCII? Selecciona todas las que correspondan.
Size is the trade-off, not a benefit: for plain English a Unicode file is usually larger. · El tamaño es el compromiso, no una ventaja: para texto en inglés normal, un archivo Unicode suele ser más grande.
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.
Ejemplo resuelto: el tamaño de un archivo de texto
- Un mensaje de 500 caracteres se almacena en ASCII extendido. ¿Cuál es el tamaño del archivo en bytes?
- ASCII extendido usa 8 bits, un byte, por carácter, así que $500 \times 1 = 500$ bytes, o $500 \times 8 = 4000$ bits.
- ¿El mismo mensaje en UTF-32? Cuatro bytes por carácter, así que 2000 bytes.
- Muestra los bits por carácter, multiplica, luego convierte una sola vez. Mezclar bits y bytes a mitad de camino es la pérdida habitual de marcas.
A 500-character message is stored in extended ASCII. How many bytes does it need (ignore any header)? · Un mensaje de 500 caracteres se almacena en ASCII extendido. ¿Cuántos bytes necesita (ignorando cualquier encabezado)?
Eight bits, one byte, per character: 500 x 1 = 500 bytes, or 4000 bits. In UTF-32 the same text needs 2000 bytes. · Ocho bits, un byte, por carácter: 500 x 1 = 500 bytes, o 4000 bits. En UTF-32, el mismo texto necesita 2000 bytes.
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.
Leer un carácter en binario y hexadecimal
- Como un punto de código es simplemente un número, se convierte como cualquier otro.
Aes 65, que es0100 0001en binario y41en hexadecimal. - Dos patrones útiles: los dígitos del
0al9van desde 48, y las minúsculas están 32 más que las mayúsculas, por lo quea(97) esA(65) más 32. Esa diferencia es un solo bit. - Una pregunta que te da
A= 65 y pideEquiere $65 + 4 = 69$, no una tabla memorizada.
The ASCII code for A is 65. What is the ASCII code for E? · El código ASCII de A es 65. ¿Cuál es el código ASCII de E?
The letters are consecutive, so E is four after A. Nothing has to be memorised beyond one anchor value. · Las letras son consecutivas, así que E está cuatro posiciones después de A. No hay nada que memorizar más allá de un valor ancla.
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".
Marcas que se escapan
- ASCII tiene 7 bits y 128 puntos de código; ASCII extendido tiene 8 bits y 256. No escribas 8 bits para ASCII plano.
- Unicode es un conjunto de caracteres; UTF-8 es un codificador de este. No son dos conjuntos rivales.
- UTF-8 tiene longitud variable, de 1 a 4 bytes, no siempre un byte ni siempre cuatro.
- La desventaja de Unicode es el tamaño del archivo para inglés plano, no "es más lento" o "es más difícil de leer".
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
Lo has logrado
- Un conjunto de caracteres da a cada carácter un punto de código; el texto son números más un acuerdo sobre cómo leerlos.
- ASCII: 7 bits, 128 puntos de código, solo inglés · ASCII extendido: 8 bits, 256, la mitad superior varía según la región.
- Unicode: un punto de código para cada sistema de escritura y emoji, almacenado mediante un codificador; UTF-8 tiene de 1 a 4 bytes y es compatible con ASCII.
- Unicode gana caracteres, portabilidad e idiomas mixtos; cuesta tamaño de archivo en texto de inglés plano.