Character codes — ASCII and Unicode · Códigos de caracteres — ASCII e Unicode
| English | Português |
|---|---|
| Unicode/ˈjuːnɪkəʊd/ | Unicode |
| character set/ˈkærɪktə set/ | conjunto de caracteres |
| ASCII/ˈæski/ | ASCII |
| encoding/enˈkəʊdɪŋ/ | codificação |
| code point/kəʊd pɔɪnt/ | ponto 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.
O e-mail que chegou como gibberish
- Ao longo dos anos 1990, uma mensagem digitada em Varsóvia e lida em Tóquio frequentemente chegava como um muro de nonsense. Ambos os computadores armazenavam oito bits por caractere. Eles simplesmente discordavam sobre o que os 128 padrões superiores significavam.
- A tabela de caracteres da Polônia colocou letras polonesas lá. A do Japão colocou seus próprios caracteres lá. Nada foi corrompido no trânsito: os bytes chegaram intactos e foram lidos contra uma tabela diferente.
- A solução foi parar de ter tabelas por país e dar a todo caractere em todo script um número, para sempre. Isso é Unicode unicode, e é por que o emoji que você envia chega como a mesma imagem.
- Esta lição é como texto se torna números: conjuntos de caracteres conjunto de caracteres, ASCII, Unicode, e as codificações que os armazenam.
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
Um conjunto de caracteres dá a cada caractere um número
- Um computador não armazena letras, apenas números. Um conjunto de caracteres conjunto de caracteres é o conjunto de caracteres que um computador pode representar, cada um com seu próprio código binário.
- O número para um caractere é seu code point code point.
Aé 65,aé 97,0o dígito é 48. - O code point não é o significado do caractere; é um rótulo acordado. Texto é legível apenas porque ambas as máquinas usam o mesmo conjunto de caracteres.

A letra é a imagem; o byte é o número
A character is stored as a number · Um caractere é armazenado como um 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 caractere tem um código numérico — 'A' é 65. Inverta os bits para ver esse código em binário e hexadecimal, exatamente como o computador o armazena.
A character set such as ASCII defines: · Um 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. · Um conjunto de caracteres mapeia cada caractere a um número (seu ponto de código), que é o que o computador realmente armazena.
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 (American Standard Code for Information Interchange) usa 7 bits, fornecendo $2^7 = 128$ pontos de código: as letras latinas básicas, dígitos, pontuação e 32 códigos de controle como retorno de carro.
- Extended ASCII usa 8 bits, fornecendo 256 pontos de código. Os primeiros 128 são idênticos ao ASCII; os últimos 128 variam por região, o que exatamente causou aquele erro no e-mail.
- Você nunca será solicitado a memorizar um código, mas será avaliado nas contagens: 7 bits, 128; 8 bits, 256.
How many different code points does 7-bit ASCII have? · Quantos pontos de código diferentes o ASCII de 7 bits tem?
7 bits give $2^7 = 128$ code points. · 7 bits dão $2^7 = 128$ pontos de código.
How many different code points does extended ASCII have? · Quantos pontos de código diferentes o ASCII expandido tem?
Eight bits give 2^8 = 256. The lower 128 match plain 7-bit ASCII; the upper 128 vary by region. · Oito bits dão 2^8 = 256. Os 128 inferiores correspondem ao ASCII simples de 7 bits; os 128 superiores variam por região.
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 é um conjunto de caracteres universal: um ponto de código para quase todos os caracteres em todos os sistemas de escrita vivos ou extintos, além de símbolos e emojis, mais de 149,000 deles.
- O ponto de código é separado de como ele é armazenado. Uma codificação 编码 converte um ponto de código em bytes.
- UTF-8 UTF-8编码 usa de 1 a 4 bytes por caractere e é compatível com ASCII: os primeiros 128 pontos de código ocupam um byte, idêntico ao ASCII. UTF-16 usa 2 ou 4 bytes; UTF-32 usa um fixo de 4.
Which is true of UTF-8? · O que é verdadeiro 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 é uma codificação Unicode de comprimento variável (1–4 bytes); seus primeiros 128 pontos de código correspondem ao ASCII, então texto ASCII simples é UTF-8 válido.
What is the relationship between Unicode and UTF-8? · Qual é a relação entre Unicode e 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. · O conjunto atribui os números; a codificação decide quantos bytes cada número ocupa. UTF-16 e UTF-32 são outras codificações do mesmo 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.
Exemplo resolvido: comparar ASCII e Unicode
- Dê uma vantagem e uma desvantagem de usar Unicode em vez de ASCII. [2]
- Vantagem: Unicode representa muito mais caracteres, então texto em qualquer alfabeto, chinês, árabe, grego e emoji pode ser armazenado, e um único documento pode misturar idiomas; os arquivos são portáteis porque não há página de código por país sobre a qual discordar.
- Desvantagem: para texto apenas em inglês, um arquivo Unicode geralmente é maior, porque um caractere pode ocupar mais de um byte.
- Ambas as partes são necessárias. "Ele tem mais caracteres" sozinho vale apenas uma das duas marcas.
A key advantage of Unicode over ASCII is that it: · Uma vantagem chave do Unicode sobre ASCII é que ele:
Unicode covers nearly every writing system plus symbols and emoji — far beyond ASCII's basic English set. · Unicode cobre quase todos os sistemas de escrita além de símbolos e emojis — muito além do conjunto básico de inglês do ASCII.
For English-only text, a Unicode file is usually larger than the same text in ASCII. · Para texto em inglês apenas, um arquivo Unicode geralmente é maior que o mesmo texto em 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. · As codificações Unicode podem usar mais bytes por caractere, então texto em inglês simples geralmente é maior que em ASCII de 7 bits — a troca pela cobertura universal.
Which are advantages of Unicode over ASCII? Select all · todos that apply. · Quais são as vantagens do Unicode sobre ASCII? Selecione todos os que se aplicam.
Size is the trade-off, not a benefit: for plain English a Unicode file is usually larger. · Tamanho é a troca, não um benefício: para inglês simples um arquivo Unicode geralmente é maior.
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.
Exemplo resolvido: o tamanho de um arquivo de texto
- Uma mensagem de 500 caracteres está armazenada em Extended ASCII. Qual é o tamanho do arquivo em bytes?
- Extended ASCII usa 8 bits, um byte, por caractere, então $500 \times 1 = 500$ bytes, ou $500 \times 8 = 4000$ bits.
- A mesma mensagem em UTF-32? Quatro bytes por caractere, então 2000 bytes.
- Mostre os bits por caractere, multiplique, depois converta uma única vez. Misturar bits e bytes pela metade é o erro comum de perda de nota.
A 500-character message is stored in extended ASCII. How many bytes does it need (ignore any header)? · Uma mensagem de 500 caracteres é armazenada em ASCII expandido. Quantos bytes ela precisa (ignorar qualquer cabeçalho)?
Eight bits, one byte, per character: 500 x 1 = 500 bytes, or 4000 bits. In UTF-32 the same text needs 2000 bytes. · Oito bits, um byte, por caractere: 500 x 1 = 500 bytes, ou 4000 bits. No UTF-32, o mesmo texto precisa de 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.
Lendo um caractere em binário e hexadecimal
- Como um ponto de código é apenas um número, ele converte como qualquer outro.
Aé 65, que é0100 0001em binário e41em hexadecimal. - Dois padrões úteis: os dígitos
0a9começam em 48, e minúsculo é 32 a mais que maiúsculo, entãoa(97) éA(65) mais 32. Essa diferença é um único bit. - Uma questão que dá
A= 65 e pedeEquer $65 + 4 = 69$, não uma tabela memorizada.
The ASCII code for A is 65. What is the ASCII code for E? · O código ASCII para A é 65. Qual é o código ASCII para E?
The letters are consecutive, so E is four after A. Nothing has to be memorised beyond one anchor value. · As letras são consecutivas, então E é quatro depois de A. Nada precisa ser memorizado além de um valor âncora.
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 escapam
- ASCII é 7 bits e 128 pontos de código; Extended ASCII é 8 bits e 256. Não escreva 8 bits para ASCII puro.
- Unicode é um conjunto de caracteres; UTF-8 é uma codificação dele. Eles não são dois conjuntos rivais.
- UTF-8 é de comprimento variável, 1 a 4 bytes, nem sempre um byte e nem sempre quatro.
- A desvantagem do Unicode é o tamanho do arquivo para inglês puro, não "é mais lento" ou "é mais difícil de ler".
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
Entendeu?
- Um conjunto de caracteres atribui a cada caractere um ponto de código; texto são números mais um acordo sobre como lê-los
- ASCII: 7 bits, 128 pontos de código, apenas inglês · Extended ASCII: 8 bits, 256, a metade superior varia por região
- Unicode: um ponto de código para cada alfabeto e emoji, armazenado por uma codificação; UTF-8 é de 1 a 4 bytes e compatível com ASCII
- Unicode ganha caracteres, portabilidade e idiomas mistos; custa tamanho de arquivo em texto apenas em inglês