ToolActToolAct

Consulta de Tabela ASCII

Referência completa de códigos de caracteres ASCII com caracteres de controle, imprimíveis e estendidos

256 caracteres total
DecimalHexCaractereDescrição
00x00-Caractere nulo
10x01-Início de Cabeçalho
20x02-Início de Texto
30x03-Fim de Texto
40x04-Fim de Transmissão
50x05-Consulta
60x06-Reconhecimento
70x07-Campainha
80x08-Backspace
90x09-Tabulação Horizontal
100x0A-Line Feed
110x0B-Tabulação Vertical
120x0C-Form Feed
130x0D-Carriage Return
140x0E-Shift Out
150x0F-Shift In
160x10-Data Link Escape
170x11-Controle de Dispositivo 1
180x12-Controle de Dispositivo 2
190x13-Controle de Dispositivo 3
200x14-Controle de Dispositivo 4
210x15-Reconhecimento Negativo
220x16-Synchronous Idle
230x17-Fim do Bloco de Transmissão
240x18-Cancelar
250x19-Fim de Mídia
260x1A-Substituto
270x1B-Escape
280x1C-Separador de Arquivo
290x1D-Separador de Grupo
300x1E-Separador de Registro
310x1F-Separador de Unidade
1270x7F-Deletar
320x20Espaço
330x21!Ponto de exclamação
340x22"Aspas duplas
350x23#Sinal de número
360x24$Sinal de dólar
370x25%Sinal de porcentagem
380x26&E comercial
390x27'Aspas simples
400x28(Parêntese esquerdo
410x29)Parêntese direito
420x2A*Asterisco
430x2B+Sinal de mais
440x2C,Vírgula
450x2D-Hífen
460x2E.Ponto final
470x2F/Barra
480x300Dígito 0
490x311Dígito 1
500x322Dígito 2
510x333Dígito 3
520x344Dígito 4
530x355Dígito 5
540x366Dígito 6
550x377Dígito 7
560x388Dígito 8
570x399Dígito 9
580x3A:Dois pontos
590x3B;Ponto e vírgula
600x3C<Menor que
610x3D=Sinal de igual
620x3E>Maior que
630x3F?Ponto de interrogação
640x40@Arroba
650x41AA maiúsculo
660x42BB maiúsculo
670x43CC maiúsculo
680x44DD maiúsculo
690x45EE maiúsculo
700x46FF maiúsculo
710x47GG maiúsculo
720x48HH maiúsculo
730x49II maiúsculo
740x4AJJ maiúsculo
750x4BKK maiúsculo
760x4CLL maiúsculo
770x4DMM maiúsculo
780x4ENN maiúsculo
790x4FOO maiúsculo
800x50PP maiúsculo
810x51QQ maiúsculo
820x52RR maiúsculo
830x53SS maiúsculo
840x54TT maiúsculo
850x55UU maiúsculo
860x56VV maiúsculo
870x57WW maiúsculo
880x58XX maiúsculo
890x59YY maiúsculo
900x5AZZ maiúsculo
910x5B[Colchete esquerdo
920x5C\Barra invertida
930x5D]Colchete direito
940x5E^Acento circunflexo
950x5F_Underscore
960x60`Acento grave
970x61aa minúsculo
980x62bb minúsculo
990x63cc minúsculo
1000x64dd minúsculo
1010x65ee minúsculo
1020x66ff minúsculo
1030x67gg minúsculo
1040x68hh minúsculo
1050x69ii minúsculo
1060x6Ajj minúsculo
1070x6Bkk minúsculo
1080x6Cll minúsculo
1090x6Dmm minúsculo
1100x6Enn minúsculo
1110x6Foo minúsculo
1120x70pp minúsculo
1130x71qq minúsculo
1140x72rr minúsculo
1150x73ss minúsculo
1160x74tt minúsculo
1170x75uu minúsculo
1180x76vv minúsculo
1190x77ww minúsculo
1200x78xx minúsculo
1210x79yy minúsculo
1220x7Azz minúsculo
1230x7B{Chave esquerda
1240x7C|Barra vertical
1250x7D}Chave direita
1260x7E~Til
1280x80€
1290x81
1300x82‚
1310x83ƒ
1320x84„
1330x85…
1340x86†
1350x87‡
1360x88ˆ
1370x89‰
1380x8AŠ
1390x8B‹
1400x8CŒ
1410x8D
1420x8EŽ
1430x8F
1440x90
1450x91‘
1460x92’
1470x93“
1480x94”
1490x95•
1500x96–
1510x97—
1520x98˜
1530x99™
1540x9Aš
1550x9B›
1560x9Cœ
1570x9D
1580x9Ež
1590x9FŸ
1600xA0 
1610xA1¡
1620xA2¢
1630xA3£
1640xA4¤
1650xA5¥
1660xA6¦
1670xA7§
1680xA8¨
1690xA9©
1700xAAª
1710xAB«
1720xAC¬
1730xAD­
1740xAE®
1750xAF¯
1760xB0°
1770xB1±
1780xB2²
1790xB3³
1800xB4´
1810xB5µ
1820xB6
1830xB7·
1840xB8¸
1850xB9¹
1860xBAº
1870xBB»
1880xBC¼
1890xBD½
1900xBE¾
1910xBF¿
1920xC0À
1930xC1Á
1940xC2Â
1950xC3Ã
1960xC4Ä
1970xC5Å
1980xC6Æ
1990xC7Ç
2000xC8È
2010xC9É
2020xCAÊ
2030xCBË
2040xCCÌ
2050xCDÍ
2060xCEÎ
2070xCFÏ
2080xD0Ð
2090xD1Ñ
2100xD2Ò
2110xD3Ó
2120xD4Ô
2130xD5Õ
2140xD6Ö
2150xD7×
2160xD8Ø
2170xD9Ù
2180xDAÚ
2190xDBÛ
2200xDCÜ
2210xDDÝ
2220xDEÞ
2230xDFß
2240xE0à
2250xE1á
2260xE2â
2270xE3ã
2280xE4ä
2290xE5å
2300xE6æ
2310xE7ç
2320xE8è
2330xE9é
2340xEAê
2350xEBë
2360xECì
2370xEDí
2380xEEî
2390xEFï
2400xF0ð
2410xF1ñ
2420xF2ò
2430xF3ó
2440xF4ô
2450xF5õ
2460xF6ö
2470xF7÷
2480xF8ø
2490xF9ù
2500xFAú
2510xFBû
2520xFCü
2530xFDý
2540xFEþ
2550xFFÿ

O que é ASCII?

ASCII (American Standard Code for Information Interchange) é um padrão de codificação de caracteres baseado no alfabeto latino. Originalmente desenvolvido para comunicação telegráfica, tornou-se o sistema fundamental de codificação de caracteres em computação. ASCII padrão contém 128 caracteres (0-127), incluindo 33 caracteres de controle e 95 caracteres imprimíveis. Uma tabela ASCII é especialmente útil para depurar codificações, caracteres de controle, protocolos, sequências de escape, terminais e formatos antigos. Valores decimais, hexadecimais e binários mostram como um caractere é armazenado ou transmitido de fato. Textos modernos geralmente usam Unicode, então ASCII cobre apenas o núcleo histórico de 7 bits. Para caracteres internacionais, emojis, sinais tipográficos e textos multilíngues, ainda é necessário verificar code points Unicode e regras de codificação.

Como Usar

Operações Básicas

  1. Clique em qualquer valor ou caractere para copiá-lo.
  2. Use a caixa de busca para localizar caracteres específicos rapidamente.
  3. Clique nos botões de categoria para filtrar por tipo de caractere.
  4. Passe o mouse sobre os caracteres para ver descrições detalhadas.

Observações sobre Codificação

  • O ASCII cobre apenas a faixa 0-127; letras acentuadas, emojis e a maior parte dos textos não ingleses exigem codificações Unicode como UTF-8.
  • Os caracteres de controle podem não ser visíveis, mas ainda afetam arquivos, terminais, protocolos e textos colados.

Casos de uso

Encontrar o código exato de um caractere visível ou invisívelPesquise por caractere, valor decimal, valor hexadecimal ou descrição para confirmar entradas como espaço 32, LF 0x0A, CR 0x0D, ESC 0x1B ou A maiúsculo 65 durante a depuração de processamento de texto. A página é uma ferramenta de referência sem campo de entrada enviado a qualquer lugar — as pesquisas operam sobre os dados ASCII de 128 entradas embutidos, para que code points internos, trechos de log e constantes de protocolo possam ser consultados sem enviá-los.
Separar caracteres de controle de texto imprimívelUse os filtros de controle, imprimível e estendido quando um log, mensagem serial, arquivo CSV ou saída de terminal contiver caracteres que não aparecem na tela mas ainda alteram o comportamento do parser. Como nenhum dado de caractere é coletado, os mesmos filtros podem ser usados para treinar estagiários, criar cartas de referência ou auditar expectativas de parser sem deixar rastro em nenhum backend.
Copiar valores de referência para código ou documentaçãoClique em um valor da tabela para copiá-lo ao escrever testes de parser, anotações de protocolo, referências de teclado, explicações de sequências de escape ou documentação de integração legada. Para valores estendidos 128-255, ainda confirme a página de código de destino — a tabela lista a posição mas não pode saber qual página de código o sistema de destino realmente decodifica.
Decodificar uma sequência de escape sem consultar um manualCole uma sequência como \x1B[31m, \r\n ou \t na caixa de pesquisa e leia os valores decimal, hexadecimal e binário além da representação imprimível. Útil quando linhas de log ou saída de terminal mostram caracteres estranhos e você precisa confirmar se o byte original era um caractere de controle ou um artefato de página de código. A consulta acontece apenas contra a tabela da página, então capturas de terminais de produção nunca saem do navegador.
Construir um inventário de caracteres imprimíveis para um parserFiltre por caracteres imprimíveis e revise a faixa ASCII de 95 entradas antes de definir uma lista de permissão para um parser restritivo. Isso ajuda a capturar suposições sobre espaços em branco, pontuação e aspas que frequentemente diferem entre linguagens de programação, shells, saída de terminal e dialetos CSV. O inventário é o próprio conjunto de dados estáticos da página, então referenciá-lo não depende de disponibilidade de rede ou documentação externa.

Princípio técnico

ASCII (American Standard Code for Information Interchange, ANSI X3.4-1968, ISO/IEC 646:1991 IRV) é uma codificação de caracteres de 7 bits que atribui códigos numéricos 0-127 a 128 caracteres. Os 32 primeiros códigos (0x00-0x1F) mais 0x7F são caracteres de controle herdados de telex: NUL (0x00), BEL (0x07, o alerta sonoro), LF (0x0A, line feed), CR (0x0D, carriage return), ESC (0x1B), DEL (0x7F), entre outros. Os códigos 0x20-0x7E são imprimíveis: espaço, os dígitos 0-9 em 0x30-0x39, as letras maiúsculas A-Z em 0x41-0x5A, as letras minúsculas a-z em 0x61-0x7A e pontuação entre eles. A codificação tem uma estrutura deliberadamente regular. Os dígitos são agrupados: '0' = 0x30, '1' = 0x31, ..., '9' = 0x39. Converter um caractere de dígito em seu valor numérico é `code - 0x30`. As letras também são agrupadas: 'A' = 0x41, 'B' = 0x42, ..., 'Z' = 0x5A, e 'a' = 0x61, ..., 'z' = 0x7A. A diferença entre maiúsculas e minúsculas para a mesma letra é 0x20 (32), que é exatamente um bit definido na posição 5 (1 << 5 = 32). Isso torna a conversão de maiúsculas/minúsculas um único XOR ou OR/AND com 0x20: `code ^ 0x20` inverte maiúsculas/minúsculas, `code | 0x20` converte para minúsculas, `code & 0x5F` (= `code & ~0x20`) converte para maiúsculas. Esse truque de bit é a conversão de caso mais rápida possível e aparece em implementações de strlen/strcmp para strings somente ASCII. O ASCII foi projetado para telex de 7 bits e o código Baudot de 5 níveis que o precedeu, então é anterior aos bytes de 8 bits. A faixa de 'ASCII estendido' de 8 bits (0x80-0xFF) nunca foi padronizada, razão pela qual tantas páginas de código (ISO 8859-1 Latin-1, Windows-1252, MacRoman, KOI8-R, IBM437) competiram pela metade superior. ISO 8859-1 (Latin-1) era o mais próximo de um padrão, mas mesmo ele não tinha o símbolo do Euro até ISO 8859-15. A faixa de controle C1 (0x80-0x9F) deveria ser reservada (ISO 6429), mas Windows-1252 reutilizou parte dela para caracteres imprimíveis — um ponto de dor de interoperabilidade de longa data que o UTF-8 finalmente resolveu. UTF-8 (RFC 3629, 2003) foi projetado por Rob Pike e Ken Thompson em 1992 como um superset retrocompatível: os 128 códigos ASCII se codificam como bytes únicos (0x00-0x7F), então qualquer texto ASCII também é um texto UTF-8 válido. Códigos acima de 0x7F usam sequências de 2, 3 ou 4 bytes com padrões de bits específicos (110xxxxx 10xxxxxx, 1110xxxx 10xxxxxx 10xxxxxx, 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx) para que um decodificador possa ressincronizar byte a byte após um erro. O EBCDIC, por outro lado, era a codificação de 8 bits para mainframes da IBM (EBCDIC de 8 bits era de 8 bits, não de 7 bits como ASCII) e atribui letras a code points não contíguos ('A' = 0xC1, 'I' = 0xC9, 'J' = 0xD1, ..., com lacunas que prejudicam truques de bits e algoritmos de string). Variantes nacionais do ISO 646 substituíram um pequeno conjunto de caracteres ASCII por letras específicas de cada país. Por exemplo, a variante britânica substituiu 0x23 (o '#' americano) pelo símbolo da libra '£', e a variante alemã substituiu parte da pontuação por acentos. É por isso que as configurações de locale do C e os arquivos charmap do POSIX eram historicamente importantes — eles mapeavam entre o IRV (International Reference Version) e as variantes nacionais. A saída desse emaranhado é Unicode / UTF-8, que torna todo o debate de 7 bits e 8 bits obsoleto para qualquer projeto novo.

  • ASCII (ANSI X3.4-1968, ISO/IEC 646 IRV) usa 7 bits por caractere com 128 code points: 33 caracteres de controle (0x00-0x1F, 0x7F) e 95 caracteres imprimíveis (0x20-0x7E).
  • Caracteres de controle (0x00-0x1F, 0x7F) foram herdados de telex: NUL, BEL (0x07, alerta sonoro), LF (0x0A), CR (0x0D), ESC (0x1B), DEL (0x7F). Textos modernos ainda usam LF e CR; o resto é quase todo história.
  • Layout imprimível: espaço (0x20), dígitos '0'-'9' (0x30-0x39), maiúsculas 'A'-'Z' (0x41-0x5A), minúsculas 'a'-'z' (0x61-0x7A), pontuação entre eles. Converter '5' para 5 é `code - 0x30`; maiúscula para minúscula é `code | 0x20`.
  • A conversão de maiúsculas/minúsculas é uma única operação de bit: XOR 0x20 inverte; OR 0x20 converte para minúsculas; AND 0x5F (= `code & ~0x20`) converte para maiúsculas. Esta é a conversão de caso mais rápida em qualquer linguagem e é como strlen/strcmp funcionam em buffers somente ASCII.
  • Extensões de 8 bits (0x80-0xFF) nunca foram padronizadas, então Windows-1252, ISO-8859-1, MacRoman, KOI8-R, IBM437 definiram a metade superior de forma diferente. Windows-1252 venceu na web e é o 'ASCII estendido' de fato que a maioria do código legado usa.
  • UTF-8 (RFC 3629, Pike & Thompson 1992) é um superset estrito de ASCII: os 128 code points ASCII se codificam como eles mesmos em 1 byte; code points acima de U+007F usam 2-4 bytes com bytes de continuação 110xxxxx 10xxxxxx, para que decodificadores possam ressincronizar byte a byte após erros.
  • EBCDIC (IBM, mainframes dos anos 1960) é a alternativa de 8 bits ao ASCII usada no IBM z/OS. As posições das letras não são contíguas ('A'=0xC1, 'I'=0xC9, 'J'=0xD1), então o truque de conversão de caso ASCII não funciona e algoritmos de bit-shift como tolower() precisam de tabelas de consulta.
  • Variantes nacionais do ISO 646 (britânica, alemã, sueca, etc.) substituíram um pequeno conjunto de caracteres ASCII por letras específicas de cada país: a variante britânica trocou '#' por '£' em 0x23, a variante alemã trocou pontuação por acentos. Localização pré-Unicode em poucas palavras.

Exemplos

Consulta rápida de caracteres

Caractere: 'A'
  Decimal:  65
  Hex:      0x41
  Binário:  01000001
  Octal:    0101
  Escape C: \x41  ('\x41' em C / C++ / Python / JavaScript)

A diferença entre maiúsculas e minúsculas é 0x20 (32 decimal):
  'a' = 0x61 (97)    =  'A' (0x41) + 0x20
  'A' = 0x41 (65)    =  'a' (0x61) - 0x20
É por isso que alternar o bit 5 (máscara 0x20) inverte a caixa de uma letra.

  ch ^ 0x20   inverte A <-> a   (funciona para A-Z, a-z, deixa os demais inalterados)

Depuração de problemas com quebras de linha

LF  (0x0A, decimal 10)  - Unix, Linux, macOS moderno  '\n'
CR  (0x0D, decimal 13)  - Mac OS clássico (pré-OS X), alguns protocolos de rede  '\r'
CRLF (0x0D 0x0A, '13 10')  - Windows, HTTP, SMTP, FTP  '\r\n'

Dump hex de um arquivo 'hi\r\n' salvo no Windows:
  0000:  68 69 0d 0a         hi..

Dump hex do mesmo conteúdo salvo no Linux ('hi\n'):
  0000:  68 69 0a            hi.

Efeito na contagem de linhas:
  $ wc -l windows.txt unix.txt
       1 windows.txt    (1 quebra de linha, 0x0D 0x0A)
       1 unix.txt       (1 quebra de linha, 0x0A)
  A contagem de bytes difere (4 vs 3) e ferramentas como dos2unix detectam
  varrendo pares 0x0D 0x0A e removendo o 0x0D.

Referência de codificação de URL

Conjunto não reservado + reservado da RFC 3986 (o restante deve ser codificado em percent-encoding):
  não reservado  A-Z a-z 0-9 - _ . ~
  reservado      ! * ' ( ) ; : @ & = + $ , / ? # [ ]
  codifique todo o resto como %HH, onde HH é o hex de 2 dígitos em maiúsculas

Caracteres comuns:
  espaço   0x20  ->  %20   (ou '+' dentro de application/x-www-form-urlencoded)
  !        0x21  ->  %21
  "        0x22  ->  %22
  #        0x23  ->  %23
  $        0x24  ->  %24
  %        0x25  ->  %25
  &        0x26  ->  %26   (separador em query strings - sempre codifique dentro de valores)
  '        0x27  ->  %27
  (        0x28  ->  %28
  )        0x29  ->  %29
  +        0x2B  ->  %2B   (ou %20 em corpos de formulário; '+' significa espaço lá)
  ,        0x2C  ->  %2C
  /        0x2F  ->  %2F   (reservado no path, normalmente seguro na query)
  :        0x3A  ->  %3A
  ;        0x3B  ->  %3B
  =        0x3D  ->  %3D
  ?        0x3F  ->  %3F
  @        0x40  ->  %40

Exemplo:  https://example.com/path with space and ampersand
Codificado:  https://example.com/path%20with%20space%20%26%20ampersand

Escapes de caracteres de controle e metacaracteres regex

Códigos de controle comuns e suas formas de escape em strings C / Python / JavaScript:
  NUL  0x00  '\0'         (terminador de string em C)
  BEL  0x07  '\a'         (sino do terminal)
  BS   0x08  '\b'         (backspace)
  TAB  0x09  '\t'         (tabulação horizontal)
  LF   0x0A  '\n'         (nova linha)
  VT   0x0B  '\v'         (tabulação vertical)
  FF   0x0C  '\f'         (form feed)
  CR   0x0D  '\r'         (retorno de carro)
  ESC  0x1B  '\x1b' / '\e' (POSIX)  (início de sequência de escape)
  DEL  0x7F  '\x7f'       (delete)

Metacaracteres regex que precisam ser escapados com \:
  ^ $ . | ? * + ( ) [ ] { } \

Trecho em JavaScript que reproduz a tabela acima:
  const ctrl = { 0:'NUL', 9:'TAB', 10:'LF', 13:'CR', 27:'ESC', 32:'SP', 127:'DEL' };
  for (const [code, name] of Object.entries(ctrl)) {
    console.log(`${code.toString().padStart(3)}  0x${(+code).toString(16).padStart(2,'0')}  ${name}`);
  }
  // ->  ' 0x20 SP'   0a LF   0d CR   etc.

Perguntas frequentes

Qual o tamanho da tabela ASCII?

O ASCII padrão tem 128 pontos de código (0-127): 33 caracteres de controle (0-31 mais 127 DEL) e 95 caracteres imprimíveis (do espaço ao ~). 'ASCII estendido' refere-se a várias codificações de byte único com 256 pontos de código, como Windows-1252 ou ISO-8859-1, que na verdade não são ASCII.

Por que o caractere 32 aparece como 'Space' em vez de um glifo visível?

O ponto de código 32 (0x20) é o caractere literal de espaço. Ele é imprimível, mas invisível. A página mostra o rótulo 'SP' ou 'Space' para que você possa copiá-lo; clicando na linha, um caractere de espaço real é copiado para a área de transferência.

Para que servem os primeiros 32 códigos ASCII?

São caracteres de controle dos tempos do teleimpressor: TAB (9), LF (10), CR (13), ESC (27) e outros. Softwares modernos ainda usam TAB, LF, CR e NUL (0); o restante (BEL, ACK, ENQ etc.) é majoritariamente histórico e só aparece em protocolos seriais e cabeçalhos de arquivos binários.

ASCII é a mesma coisa que UTF-8?

ASCII é uma codificação de 7 bits para o inglês. UTF-8 é uma codificação de comprimento variável que é compatível byte a byte com ASCII para os primeiros 128 pontos de código — então qualquer arquivo puramente ASCII também é UTF-8 válido. UTF-8 estende com sequências de 2 a 4 bytes para cobrir o resto do Unicode.

Como converto entre decimal, hexadecimal e binário para um caractere?

Escolha uma linha para ver as quatro representações. Por exemplo, 'A' é decimal 65, hex 0x41, octal 0101, binário 01000001. A coluna Char é o glifo literal e a coluna Description traz o nome oficial Unicode.

Por que esta tabela não lista é, ñ ou 中?

Esses caracteres estão fora da faixa ASCII. é e ñ estão no Latin-1 (pontos de código 233 e 241); 中 está em CJK Unified Ideographs (U+4E2D). Use uma ferramenta de consulta Unicode para eles — o ASCII só vai até 127.

Como digito um caractere se só conheço o código ASCII dele?

No Windows, segure Alt e digite o código decimal no teclado numérico (Alt+65 para A). No macOS e Linux, cole desta tabela ou use o recurso de código hex do método de entrada. Em código, use \xNN (hex), \NNN (octal) ou chr(N) (Python) e String.fromCharCode(N) (JavaScript).