Skip to content

Tabela ASCII e conversor de caracteres

A tabela ASCII completa: 128 caracteres em decimal, hexadecimal, octal e binário, mais um conversor texto ↔ ASCII. Cada caractere de controle traz seu escape, sua notação caret e onde você o encontra.

Sem rastreamento Roda no navegador Grátis

Tudo roda no seu navegador — o que você digita nunca é enviado, registrado ou armazenado.

Texto e código ASCII, nos dois sentidos

A tabela ASCII completa (0–127)

128 / 128
Dec Hex Oct Binário Car. Nome Escape Caret HTML Onde você encontra
0 00 000 00000000 NUL Null \0 ^@ � Terminador de string em C; separa nomes de arquivo no find -print0 e no xargs -0; faz o grep dizer Binary file matches.
1 01 001 00000001 SOH Start of Heading ^A  O protocolo FIX usa este byte como separador de campos, e por isso as mensagens FIX parecem uma linha só, emendada.
2 02 002 00000010 STX Start of Text ^B  Cabeçalho de quadro em protocolos de porta serial, PDV e leitor de código de barras; tecla de prefixo Ctrl+B do tmux.
3 03 003 00000011 ETX End of Text ^C  Ctrl+C envia este byte; a disciplina de linha do tty o transforma em SIGINT, então o seu programa nunca chega a vê-lo.
4 04 004 00000100 EOT End of Transmission ^D  Ctrl+D envia a linha de entrada atual; quando a linha está vazia, a leitura retorna 0 bytes, e é isso que é o EOF.
5 05 005 00000101 ENQ Enquiry ^E  Handshakes de enlaces antigos; alguns terminais respondem a ele com uma string de identificação.
6 06 006 00000110 ACK Acknowledge ^F  Emparelhado com ENQ e NAK nos antigos protocolos de enlace; ainda aparece em equipamentos seriais industriais.
7 07 007 00000111 BEL Bell \a ^G  printf '\a' toca a campainha; hoje é mais comum que ele termine uma sequência OSC, como definir o título da janela.
8 08 010 00001000 BS Backspace \b ^H  Apagamento em barras de progresso. Atenção: a maioria dos terminais envia 0x7F no Backspace, e não este byte.
9 09 011 00001001 HT Character Tabulation \t ^I 	 As receitas de um Makefile precisam começar com TAB de verdade; o gofmt indenta com TAB; Tab e Ctrl+I são o mesmo byte.
10 0A 012 00001010 LF Line Feed \n ^J 
 Quebra de linha no Unix e no macOS; o core.autocrlf do git converte entre este byte e o CRLF.
11 0B 013 00001011 VT Line Tabulation \v ^K  Quase extinto, mas ainda conta como quebra de linha: splitlines() quebra nele e split("\n") não.
12 0C 014 00001100 FF Form Feed \f ^L  Salto de página em impressora; Ctrl+L limpa o terminal; o Emacs usa ele como marca de seção no código-fonte.
13 0D 015 00001101 CR Carriage Return \r ^M 
 A primeira metade do CRLF do Windows; aparece como ^M no git diff; causa bad interpreter: /bin/bash^M.
14 0E 016 00001110 SO Shift Out ^N  Troca para o conjunto de caracteres alternativo G1 no ISO 2022; envolve regiões de dois bytes em mainframes EBCDIC.
15 0F 017 00001111 SI Shift In ^O  Volta para o conjunto de caracteres G0 padrão, emparelhado com o SO.
16 10 020 00010000 DLE Data Link Escape ^P  Prefixo de escape do byte stuffing em protocolos binários antigos.
17 11 021 00010001 DC1 Device Control One ^Q  XON — retomada do controle de fluxo por software; Ctrl+Q descongela a saída do terminal.
18 12 022 00010010 DC2 Device Control Two ^R  Sem significado moderno fixo. O Ctrl+R do shell é um atalho do readline, sem relação com este código.
19 13 023 00010011 DC3 Device Control Three ^S  XOFF — pausa do controle de fluxo por software. Apertar Ctrl+S sem querer é a causa mais comum de um terminal congelado.
20 14 024 00010100 DC4 Device Control Four ^T  Sem significado moderno fixo; no BSD e no macOS, Ctrl+T é a tecla de status do tty.
21 15 025 00010101 NAK Negative Acknowledge ^U  Ctrl+U apaga a linha inteira — isso é a configuração kill do tty, não o sentido original deste código.
22 16 026 00010110 SYN Synchronous Idle ^V  Ctrl+V é o lnext: aperte ele e depois Tab para digitar um TAB de verdade no bash sem disparar o autocompletar.
23 17 027 00010111 ETB End of Transmission Block ^W  Ctrl+W apaga a palavra anterior — a configuração werase do tty.
24 18 030 00011000 CAN Cancel ^X  A ECMA-48 usa este byte para abortar uma sequência de controle inacabada; os terminais descartam a sequência em análise.
25 19 031 00011001 EM End of Medium ^Y  Hoje quase não se usa; no BSD e no macOS, Ctrl+Y é a suspensão adiada.
26 1A 032 00011010 SUB Substitute ^Z  Marca de fim de arquivo nos textos do CP/M e do DOS, e por isso os consoles do Windows encerram a entrada com Ctrl+Z.
27 1B 033 00011011 ESC Escape ^[  Início de toda sequência de escape ANSI: \033[0m reseta a cor e \033[2J limpa a tela. O Ctrl+[ também envia ele.
28 1C 034 00011100 FS File Separator ^\  O encapsulamento MLLP do HL7 v2 usa este byte como terminador de bloco; Ctrl+\ envia SIGQUIT.
29 1D 035 00011101 GS Group Separator ^]  Nos códigos de barras GS1, o separador FNC1 é este byte — o delimitador invisível que o seu leitor emite.
30 1E 036 00011110 RS Record Separator ^^  As JSON Text Sequences da RFC 7464 prefixam cada registro com ele. Um dos poucos usos modernos ainda vivos.
31 1F 037 00011111 US Unit Separator ^_  Separador de campos em texto estruturado, mais seguro que uma vírgula porque nunca aparece no conteúdo.
32 20 040 00100000 Space  
33 21 041 00100001 Exclamation Mark !
34 22 042 00100010 Quotation Mark "
35 23 043 00100011 Number Sign #
36 24 044 00100100 Dollar Sign $
37 25 045 00100101 Percent Sign %
38 26 046 00100110 Ampersand &
39 27 047 00100111 Apostrophe '
40 28 050 00101000 Left Parenthesis (
41 29 051 00101001 Right Parenthesis )
42 2A 052 00101010 Asterisk *
43 2B 053 00101011 Plus Sign +
44 2C 054 00101100 Comma ,
45 2D 055 00101101 Hyphen-Minus -
46 2E 056 00101110 Full Stop .
47 2F 057 00101111 Solidus /
48 30 060 00110000 Digit Zero 0
49 31 061 00110001 Digit One 1
50 32 062 00110010 Digit Two 2
51 33 063 00110011 Digit Three 3
52 34 064 00110100 Digit Four 4
53 35 065 00110101 Digit Five 5
54 36 066 00110110 Digit Six 6
55 37 067 00110111 Digit Seven 7
56 38 070 00111000 Digit Eight 8
57 39 071 00111001 Digit Nine 9
58 3A 072 00111010 Colon :
59 3B 073 00111011 Semicolon &#59;
60 3C 074 00111100 Less-Than Sign <
61 3D 075 00111101 Equals Sign =
62 3E 076 00111110 Greater-Than Sign >
63 3F 077 00111111 Question Mark ?
64 40 100 01000000 Commercial At @
65 41 101 01000001 Latin Capital Letter A A
66 42 102 01000010 Latin Capital Letter B B
67 43 103 01000011 Latin Capital Letter C C
68 44 104 01000100 Latin Capital Letter D D
69 45 105 01000101 Latin Capital Letter E E
70 46 106 01000110 Latin Capital Letter F F
71 47 107 01000111 Latin Capital Letter G G
72 48 110 01001000 Latin Capital Letter H H
73 49 111 01001001 Latin Capital Letter I I
74 4A 112 01001010 Latin Capital Letter J J
75 4B 113 01001011 Latin Capital Letter K K
76 4C 114 01001100 Latin Capital Letter L L
77 4D 115 01001101 Latin Capital Letter M M
78 4E 116 01001110 Latin Capital Letter N N
79 4F 117 01001111 Latin Capital Letter O O
80 50 120 01010000 Latin Capital Letter P P
81 51 121 01010001 Latin Capital Letter Q Q
82 52 122 01010010 Latin Capital Letter R R
83 53 123 01010011 Latin Capital Letter S S
84 54 124 01010100 Latin Capital Letter T T
85 55 125 01010101 Latin Capital Letter U U
86 56 126 01010110 Latin Capital Letter V V
87 57 127 01010111 Latin Capital Letter W W
88 58 130 01011000 Latin Capital Letter X X
89 59 131 01011001 Latin Capital Letter Y Y
90 5A 132 01011010 Latin Capital Letter Z Z
91 5B 133 01011011 Left Square Bracket [
92 5C 134 01011100 Reverse Solidus \
93 5D 135 01011101 Right Square Bracket ]
94 5E 136 01011110 Circumflex Accent ^
95 5F 137 01011111 Low Line _
96 60 140 01100000 Grave Accent `
97 61 141 01100001 Latin Small Letter A a
98 62 142 01100010 Latin Small Letter B b
99 63 143 01100011 Latin Small Letter C c
100 64 144 01100100 Latin Small Letter D d
101 65 145 01100101 Latin Small Letter E e
102 66 146 01100110 Latin Small Letter F f
103 67 147 01100111 Latin Small Letter G g
104 68 150 01101000 Latin Small Letter H h
105 69 151 01101001 Latin Small Letter I i
106 6A 152 01101010 Latin Small Letter J j
107 6B 153 01101011 Latin Small Letter K k
108 6C 154 01101100 Latin Small Letter L l
109 6D 155 01101101 Latin Small Letter M m
110 6E 156 01101110 Latin Small Letter N n
111 6F 157 01101111 Latin Small Letter O o
112 70 160 01110000 Latin Small Letter P p
113 71 161 01110001 Latin Small Letter Q q
114 72 162 01110010 Latin Small Letter R r
115 73 163 01110011 Latin Small Letter S s
116 74 164 01110100 Latin Small Letter T t
117 75 165 01110101 Latin Small Letter U u
118 76 166 01110110 Latin Small Letter V v
119 77 167 01110111 Latin Small Letter W w
120 78 170 01111000 Latin Small Letter X x
121 79 171 01111001 Latin Small Letter Y y
122 7A 172 01111010 Latin Small Letter Z z
123 7B 173 01111011 Left Curly Bracket {
124 7C 174 01111100 Vertical Line |
125 7D 175 01111101 Right Curly Bracket }
126 7E 176 01111110 Tilde ~
127 7F 177 01111111 DEL Delete ^?  O que a sua tecla Backspace realmente envia na maioria dos terminais. O nome vem da fita perfurada: sete furos.

A coluna binária é preenchida até 8 bits para facilitar a leitura. O ASCII em si é um código de 7 bits — o bit mais alto é sempre 0, e é exatamente isso que permite ao UTF-8 continuar retrocompatível com ele.

E de 128 a 255?

O ASCII não define nada entre 128 e 255. «ASCII estendido» não é o nome de norma nenhuma — é um termo solto para toda uma família de codificações de 8 bits. O mesmo byte é um caractere diferente em cada uma delas:

Byte ISO-8859-1 Windows-1252 CP437 CP866
0x80 U+0080 Controle C1 (invisível) € Ç А
0x93 U+0093 Controle C1 (invisível) “ ô У
0xB0 ° ° ░ ░
0xE9 é é Θ щ
0xFF ÿ ÿ U+00A0 U+00A0
As classificações de caracteres são cruzadas com as próprias categorias do Unicode na hora dos testes, e o mapeamento do Windows-1252 é verificado byte a byte contra o decodificador da plataforma. — Equipe de engenharia da Go-Tools · 2 de set. de 2026

Cada valor da tabela é gerado por um único motor que tanto o servidor quanto o navegador executam, então o que um rastreador lê e aquilo com que você interage nunca podem divergir. As diferenças de escape entre linguagens foram verificadas compilando e executando o código em cada uma delas, não citadas de memória.

Referência rápida

Qual é o código ASCII do A?

A = 65 O A maiúsculo é 65 em decimal, 0x41 em hexadecimal, 101 em octal e 01000001 em binário. O a minúsculo é 97 — exatamente 32 a mais, o que é um único bit.

Quantos caracteres o ASCII tem?

128 128, numerados de 0 a 127. Isto é: 32 caracteres de controle, 95 caracteres gráficos contando o espaço, e o DEL.

O que é o ASCII 0?

0 = NUL NUL, o caractere nulo. Ele termina as strings em C, separa nomes de arquivo no find -print0 e faz o grep tratar um arquivo como binário.

Qual byte é a quebra de linha?

LF = 10, CR = 13 O avanço de linha (LF) é 10 (0x0A, \n). O retorno de carro (CR) é 13 (0x0D, \r). Os finais de linha do Windows são os dois, com o CR primeiro.

O que é ASCII?

O ASCII é uma codificação de caracteres de 7 bits — 128 pontos de código, numerados de 0 a 127, e nada além disso. Foi publicado pela primeira vez como ASA X3.4-1963 e a forma atual dele é a ANSI X3.4-1986; a RFC 20 descreve o uso dele na internet e foi elevada a padrão de internet STD 80 em 2015. A primeiríssima versão não tinha nenhuma letra minúscula; elas chegaram na revisão de 1967. Tudo o que está acima de 127 pertence a alguma outra codificação, não ao ASCII.

0x00-0x1F   32 C0 control characters
0x20         1 space (a graphic character, not a control)
0x21-0x7E   94 printable graphic characters
0x7F         1 DEL (a control character, but not part of C0)
            ---
            128 total

O que esta tabela te dá

As quatro bases lado a lado

Decimal, hexadecimal, octal e binário de 8 bits para cada um dos 128 pontos de código, com aquele zero à esquerda que lembra que o ASCII é, na verdade, de 7 bits.

As sequências de escape por linguagem

A coluna \0 \a \b \t \n \v \f \r mais as diferenças que de fato quebram builds — o JavaScript não tem \a, o Java não tem nem \a nem \v, e \e é uma extensão GNU em vez de ISO C.

Notação caret

A coluna de ^@ até ^? e a única regra que cobre os 33 caracteres de controle: fazer o XOR do byte com 0x40. Não é somar nem subtrair — é XOR.

Onde você encontra de verdade cada caractere de controle

Não só «SOH — start of heading», mas que as mensagens do protocolo FIX o usam como separador de campos, que 0x1D é o separador invisível que o seu leitor de código de barras emite, e que o Ctrl+S que congela o seu terminal é XOFF.

Um conversor que se recusa a adivinhar

Quem escolhe a base é você. Bytes acima de 127 são recusados com uma nota sobre como eles seriam lidos em Windows-1252 e em ISO-8859-1, em vez de passarem por ASCII.

Os caracteres de controle continuam visíveis

NUL, TAB e CR não têm glifo, então a pré-visualização os mostra com os Control Pictures do Unicode. O botão de copiar continua te entregando os bytes de verdade.

Codificações relacionadas

ISO/IEC 8859-1 (Latin-1)

8 bits, um byte

Mantém 0–127 idêntico ao ASCII e define 96 caracteres gráficos de 0xA0 até 0xFF. A faixa 0x80–0x9F fica para os caracteres de controle C1, que são invisíveis.

Windows-1252

8 bits, um byte

Um superconjunto do ISO-8859-1 cuja única diferença está em 0x80–0x9F, onde ele coloca 27 caracteres imprimíveis e deixa 5 indefinidos. Os navegadores usam ele sempre que uma página se declara ISO-8859-1.

CP437

8 bits, um byte

A página de código original do IBM PC. A metade alta dela é feita de letras acentuadas, letras gregas e caracteres de desenho de caixas — são essas as tabelas que aparecem nos artigos que prometem 256 caracteres ASCII.

UTF-8

Variável, de 1 a 4 bytes

Codifica todo o Unicode mantendo cada byte ASCII idêntico byte a byte. É retrocompatível com o US-ASCII, mas não com nenhuma das páginas de código de 8 bits acima.

Exemplos

De texto para códigos decimais

Hello
72 101 108 108 111

Cada caractere vira o seu ponto de código decimal. As maiúsculas vão de 65 a 90 e as minúsculas de 97 a 122 — exatamente 32 de diferença, e é por isso que inverter o bit 5 troca a caixa.

Os mesmos códigos lidos em duas bases

41 42 43
hex -> ABC     decimal -> )*+

É por isso que o conversor nunca adivinha a base por você. As duas leituras são válidas; só você sabe qual delas queria.

Os caracteres de controle sobrevivem à ida e volta

9 10 13 0
TAB, LF, CR, NUL

Eles são invisíveis na caixa de saída, então a linha de pré-visualização os mostra com os Control Pictures do Unicode. O botão de copiar continua copiando os bytes de verdade, não os substitutos.

Bytes acima de 127 são recusados, com explicação

233
Outside ASCII (0-127)

233 não é um código ASCII. A ferramenta avisa que ele é lido como é tanto em Windows-1252 quanto em ISO-8859-1, mas não vai fazer isso passar por ASCII.

Como usar

  1. 1

    Escolha a base

    Decimal, hexadecimal, octal ou binária. Faça isso primeiro — os mesmos dígitos são decodificados de forma diferente em cada base e a ferramenta se recusa de propósito a adivinhar.

  2. 2

    Digite em qualquer um dos lados

    Texto à esquerda, códigos à direita. Em qualquer lado que você digite, o outro é atualizado.

  3. 3

    Leia os avisos

    Os caracteres fora de 0–127 aparecem listados com o ponto de código e os bytes UTF-8, em vez de serem descartados em silêncio ou virarem pontos de interrogação.

  4. 4

    Use a tabela como referência

    Filtre pelos caracteres de controle, busque por código ou por nome, e clique em qualquer caractere para copiá-lo.

Erros que vale a pena conhecer

Afirmar que o ASCII tem 256 caracteres

O ASCII para em 127. Tudo além disso pertence a uma página de código de 8 bits específica, que precisa ser nomeada. O Python te diz isso na lata se você pedir para codificar uma letra acentuada como ASCII.

✗ Incorreto
'cafe\u00e9'.encode('ascii')  # UnicodeEncodeError: ordinal not in range(128)
✓ Correto
'cafe\u00e9'.encode('utf-8')   # b'cafe\xc3\xa9'

Supor que toda linguagem tem os mesmos escapes

O JavaScript não tem o escape \a. Em vez de falhar, ele descarta a barra invertida e te deixa com a letra, e o modo estrito não ajuda.

✗ Incorreto
"\a".charCodeAt(0)   // 97 - that is the letter 'a', not BEL
✓ Correto
"\x07".charCodeAt(0) // 7 - BEL

Explicar a notação caret como uma soma

Somar 0x40 funciona para a faixa C0 e depois quebra no DEL, onde você teria de subtrair. O XOR é a regra única que cobre os 33.

✗ Incorreto
caret = chr(code + 0x40)   # 0x7F + 0x40 overflows past the table
✓ Correto
caret = chr(code ^ 0x40)   # 0x00 -> @, 0x1B -> [, 0x7F -> ?

Quando você precisa disto

Ler um dump hexadecimal ou um trace de protocolo
Você tem bytes e precisa saber quais são imprimíveis, quais são separadores e quais são códigos de controle sobre os quais o terminal está agindo caladinho. Para bytes que chegam por uma porta serial, o terminal serial online os mostra na visualização HEX com uma coluna ASCII ao lado.
Depurar um arquivo que se comporta de forma estranha
Um CR perdido no fim de cada linha, um NUL que faz o grep considerar o arquivo binário, ou um TAB onde um Makefile exigia um.
Escrever um parser ou um validador
Decidir quais faixas de bytes aceitar e acertar os limites — 0x21–0x7E para os caracteres gráficos, 0x20 para o espaço, 0x7F para o DEL.
Explicar um bug de codificação
Mostrar a um colega por que o mesmo byte aparece como três caracteres diferentes, dependendo da página de código que quem leu presumiu.
Exibir texto em um pequeno LCD ou OLED
Um OLED SSD1306 de 0,96", como a maioria dos controladores de display gráfico, não tem fonte própria: cada código imprimível de 0x20 a 0x7E precisa de um bitmap 8 × 16 ou 6 × 12 no firmware. O gerador de fontes LCD converte-os em um array C na ordem de bytes que o display espera.

Detalhes técnicos

ASCII, Unicode e UTF-8
Os primeiros 128 pontos de código do Unicode, de U+0000 a U+007F, correspondem um a um ao ASCII. O UTF-8 os codifica como bytes únicos 0x00–0x7F, com o bit mais alto em 0. A propriedade que realmente importa é a terceira: todo byte de uma sequência UTF-8 de vários bytes tem o bit mais alto em 1, então um byte na faixa 0–127 nunca pode fazer parte de um caractere não ASCII. É isso que torna seguro varrer UTF-8 byte a byte procurando /, \0 ou \n.
O oitavo bit
O ASCII define um código de 7 bits; guardar um caractere por byte de 8 bits é convenção, e historicamente esse bit sobrando costumava ser um bit de paridade. Os transportes de e-mail que só garantiam transparência de 7 bits são a razão de existirem o Base64 e o quoted-printable.
Por que o alfabeto está disposto assim
Os dígitos 0–9 ficam em 0x30–0x39, de modo que o nibble baixo é o próprio valor. A é 0x41 e a é 0x61 — um único bit de diferença, então c | 0x20 deixa minúsculo e c & 0xDF deixa maiúsculo. Mas só para as letras: '_' | 0x20 dá 0x7F, que é o DEL, e '[' | 0x20 dá {.
As variantes nacionais e o problema do 0x5C
A ISO/IEC 646 permitia trocar 12 pontos de código conforme o país. A JIS X 0201 japonesa colocou um símbolo de iene em 0x5C e a KS X 1003 coreana colocou ali um símbolo de won — é por isso que o Windows japonês mostra os caminhos com um símbolo de iene enquanto o byte continua sendo 0x5C. Em Shift_JIS fica pior: o segundo byte de um caractere de dois bytes pode ser ele mesmo 0x5C, e os caracteres hyou, so, juu, nou, kou e bou terminam todos nele, então um tratamento ingênuo de barras invertidas os parte ao meio.

Como fazer certo

Diga sempre qual é a página de código
«ASCII estendido» não diz nada a quem lê. Diga Windows-1252, ou ISO-8859-1, ou CP437 — o mesmo byte é um caractere diferente em cada uma.
Diga US-ASCII quando for isso que você quer dizer
Esse é o nome registrado na IANA. charset=ascii não é, e em um navegador charset=ISO-8859-1 vai te dar na verdade Windows-1252, porque o WHATWG Encoding Standard mapeia o rótulo assim.
Nunca adivinhe a base pelo usuário
Se a sua ferramenta ou o seu parser decidir em silêncio que 41 é hexadecimal, vai errar em cerca de metade das vezes e a falha será silenciosa.
Itere por ponto de código, não por unidade UTF-16
"A" + clave de sol + caractere chinês tem .length === 4, mas só três caracteres. Use [...str] ou codePointAt, senão a sua mensagem de «caractere não suportado» vai reportar os emoji como duas metades quebradas.

Perguntas frequentes

Quantos caracteres o ASCII tem?
128. O ASCII é um código de 7 bits, então define exatamente os pontos de código de 0 a 127: 32 caracteres de controle C0, 95 caracteres gráficos contando o espaço, e o DEL. Os artigos intitulados «tabela ASCII completa (256 caracteres)» estão mostrando alguma página de código de 8 bits específica — normalmente CP437 ou Windows-1252 — e não ASCII.
O que é o ASCII estendido?
Nada, falando com rigor. «ASCII estendido» não é o nome de norma nenhuma; é um termo solto para toda uma família de codificações de 8 bits que mantêm 0–127 igual e definem 128–255 cada uma do seu jeito. O byte 0xE9 é é em ISO-8859-1, a letra grega Θ em CP437 e uma letra cirílica em CP866. Sem dizer qual é a página de código, a pergunta não tem resposta. O mesmo limite aparece nos códigos de barras: o subconjunto A do Code 128 cobre ASCII 0–95 e o subconjunto B cobre 32–127, por isso o gerador de código de barras recusa qualquer coisa além de Latin-1.
Windows-1252 é a mesma coisa que ISO-8859-1?
São idênticos de 0xA0 até 0xFF e completamente diferentes de 0x80 até 0x9F. O ISO-8859-1 deixa essa faixa para os caracteres de controle C1, que são invisíveis; o Windows-1252 coloca ali 27 caracteres imprimíveis — o símbolo do euro, as aspas curvas, o travessão e o meio-travessão — e deixa 5 posições indefinidas. É por isso que uma aspa curva copiada de um editor de textos vira um caractere de controle invisível assim que passa por algo que é ISO-8859-1 de verdade.
O DEL é um caractere de controle?
É. O Unicode classifica U+007F como Cc, e o iscntrl(127) do C é verdadeiro. Ele apenas não faz parte do conjunto C0, que é estritamente 0x00–0x1F. Está no fim da tabela por causa da fita perfurada: 0x7F são sete furos perfurados e, uma vez feito um furo, não dá para desfazê-lo, então «todos os furos perfurados» era o único jeito de marcar um caractere como apagado.
O espaço é um caractere de controle?
Não, e muitas tabelas ASCII erram nisso. O Unicode classifica o espaço (0x20) como Zs, separador de espaço, que é um caractere gráfico. Só 0x00–0x1F e 0x7F são caracteres de controle.
Se o ASCII é de 7 bits, por que a coluna binária mostra 8?
Porque o byte é a unidade em que tudo é realmente armazenado — o bit mais alto simplesmente vale sempre 0. Esse preenchimento não é enfeite: justamente porque o ASCII nunca usa o oitavo bit, o UTF-8 pôde tomá-lo como a marca de «isto faz parte de uma sequência de vários bytes», e é isso que torna o UTF-8 retrocompatível com o ASCII.
Todas as linguagens escrevem os caracteres de controle do mesmo jeito?
Não, e as diferenças mordem. \a (campainha) é padrão em C e em Python, mas o JavaScript não tem esse escape — '\a' vira silenciosamente a letra a, sem erro nem em modo estrito. O Java recusa tanto \a quanto \v. O Go recusa \0 porque os escapes octais dele precisam ter exatamente três dígitos, então se escreve \000. E \e para o ESC é uma extensão GNU, não ISO C.
O que significa ^M em um diff ou no vim?
É um retorno de carro, o byte 13. A notação caret escreve um caractere de controle fazendo o XOR do valor dele com 0x40, então CR (0x0D) vira ^M e ESC (0x1B) vira ^[. Ver ^M no fim de cada linha significa que o arquivo tem finais de linha CRLF do Windows; ver bad interpreter: /bin/bash^M significa que um script de shell trouxe esses finais junto.

Ferramentas relacionadas

Ver todas as ferramentas →

Gerador de Código de Barras Grátis — EAN-13, UPC-A, Code 128

Codificação e Formatação

Gere EAN-13, UPC-A, Code 128, Code 39 e mais 11 tipos de código de barras em SVG ou PNG pronto para impressão. Digite 12 dígitos e o dígito verificador é preenchido automaticamente; errou um, dizemos qual deveria ser.

Decodificador e Codificador Base64

Codificação e Formatação

Decodifique e codifique Base64 online gratuitamente. Conversão em tempo real com suporte completo a UTF-8 e emoji. 100% privado — executa no seu navegador. Sem necessidade de cadastro.

Conversor de Base64 para Imagem

Codificação e Formatação

Decodifique uma string Base64 ou data URI de volta para imagem no navegador. Pré-visualize, leia dimensões e MIME, e baixe como PNG, JPG, GIF, SVG. Sem upload.

Converter Base64 para PDF e arquivo · PDF para Base64

Codificação e Formatação

Base64 para PDF online: cole Base64 puro, uma data URI ou a resposta JSON inteira. Detecta o tipo real do arquivo, mostra a prévia, faz o download e avisa se o PDF estiver truncado. Também PDF para Base64. Nada é enviado.

Conversor CSV para JSON

Codificação e Formatação

Converta CSV para JSON no navegador. RFC 4180, inferência de tipos, cabeçalho, seguro para inteiros grandes. 100% privado, sem upload.

Conversor de Codificação e Corretor de Mojibake

Codificação e Formatação

Cole o texto corrompido e recupere o original. Toda cadeia de codificação plausível — UTF-8, GBK, Big5, Shift_JIS, EUC-KR, Windows-1252 — é testada e ordenada, com a cadeia exata à vista. Grátis, roda no navegador.