Referência8 min de leitura

Tabela Completa de Caracteres Codificados em URL (ASCII + Unicode)

Tabela de referência completa dos caracteres codificados em URL. Cobre todos os caracteres ASCII imprimíveis (32-126), caracteres Unicode comuns e seus equivalentes em percent-encoding conforme definido pela RFC 3986.

Caracteres de Controle e Especiais ASCII

Os caracteres ASCII no intervalo de 0 a 31 e o caractere 127 são caracteres de controle. Eles não são imprimíveis e devem sempre ser codificados em percent-encoding nas URLs. Os caracteres de controle mais frequentemente encontrados em contextos de URL são o espaço (ASCII 32), a tabulação horizontal (ASCII 9) e os caracteres de nova linha (ASCII 10 e 13).

De acordo com a RFC 3986, qualquer octeto que não seja um caractere não reservado, um caractere reservado usado para sua finalidade reservada ou um tripleto em percent-encoding deve ser codificado em percent-encoding. Na prática, isso significa que a maioria dos caracteres não alfanuméricos deve ser codificada nos componentes de uma URI.

Caractere Código ASCII Codificado em URL Descrição
(tab) 9 %09 Tabulação Horizontal
(LF) 10 %0A Avanço de Linha
(CR) 13 %0D Retorno de Carro
(espaço) 32 %20 Espaço

Caracteres ASCII Imprimíveis

Abaixo está uma referência completa de todos os caracteres ASCII imprimíveis (códigos 32-126) e suas formas codificadas em URL. Os caracteres marcados como "não reservados" na RFC 3986 não exigem codificação. Os caracteres reservados devem ser codificados quando usados fora de sua finalidade reservada.

Caractere ASCII Hex Codificado em URL Tipo
(espaço) 32 20 %20 Especial
! 33 21 %21 Reservado
" 34 22 %22 Inseguro
# 35 23 %23 Reservado
$ 36 24 %24 Reservado
% 37 25 %25 Especial
& 38 26 %26 Reservado
' 39 27 %27 Reservado
( 40 28 %28 Reservado
) 41 29 %29 Reservado
* 42 2A %2A Reservado
+ 43 2B %2B Reservado
, 44 2C %2C Reservado
- 45 2D %2D Não reservado
. 46 2E %2E Não reservado
/ 47 2F %2F Reservado
0-9 48-57 30-39 Não necessário Não reservado
: 58 3A %3A Reservado
; 59 3B %3B Reservado
< 60 3C %3C Inseguro
= 61 3D %3D Reservado
> 62 3E %3E Inseguro
? 63 3F %3F Reservado
@ 64 40 %40 Reservado
A-Z 65-90 41-5A Não necessário Não reservado
[ 91 5B %5B Reservado
\ 92 5C %5C Inseguro
] 93 5D %5D Reservado
^ 94 5E %5E Inseguro
_ 95 5F %5F Não reservado
` 96 60 %60 Inseguro
a-z 97-122 61-7A Não necessário Não reservado
{ 123 7B %7B Inseguro
| 124 7C %7C Inseguro
} 125 7D %7D Inseguro
~ 126 7E %7E Não reservado

Codificações Unicode Comuns

Os caracteres Unicode são primeiro codificados em sua sequência de bytes UTF-8 e, em seguida, cada byte é individualmente codificado em percent-encoding. Caracteres de múltiplos bytes produzem vários tripletos em percent-encoding.

Caractere Descrição Bytes UTF-8 Codificado em URL
a com trema Letra Latina Minúscula A com Trema C3 A4 %C3%A4
n com til Letra Latina Minúscula N com Til C3 B1 %C3%B1
e com acento agudo Letra Latina Minúscula E com Acento Agudo C3 A9 %C3%A9
u com trema Letra Latina Minúscula U com Trema C3 BC %C3%BC
Símbolo do euro Símbolo do Euro E2 82 AC %E2%82%AC
Símbolo da libra Símbolo da Libra C2 A3 %C2%A3
Símbolo do iene Símbolo do Iene C2 A5 %C2%A5
CJK zhong Ideograma Unificado CJK (meio) E4 B8 AD %E4%B8%AD
Ya cirílico Letra Cirílica Maiúscula Ya D0 AF %D0%AF
Ba árabe Letra Árabe Ba D8 A8 %D8%A8

Como os Caracteres de Múltiplos Bytes São Codificados

O UTF-8 usa um esquema de codificação de comprimento variável. Os caracteres no intervalo ASCII (0-127) usam um byte. Os caracteres fora desse intervalo usam de dois a quatro bytes. Ao aplicar o percent-encoding, cada byte da representação UTF-8 torna-se um tripleto %XX separado.

Caracteres de dois bytes (U+0080 a U+07FF): incluem a maioria dos caracteres do Latin estendido, do grego, do cirílico e do árabe. Por exemplo, a letra alemã ß (U+00DF) é codificada nos bytes UTF-8 C3 9F, que se tornam %C3%9F.

Caracteres de três bytes (U+0800 a U+FFFF): incluem os caracteres CJK, a maioria dos símbolos e o Plano Multilíngue Básico. Por exemplo, o caractere japonês hiragana (U+3042) é codificado nos bytes UTF-8 E3 81 82, que se tornam %E3%81%82.

Caracteres de quatro bytes (U+10000 a U+10FFFF): incluem emojis e caracteres suplementares. Por exemplo, o emoji de rosto sorridente (U+1F600) é codificado nos bytes UTF-8 F0 9F 98 80, que se tornam %F0%9F%98%80.

// Demonstração em JavaScript da codificação de múltiplos bytes
console.log(encodeURIComponent('u com trema'));
// Dois bytes: "%C3%BC"

console.log(encodeURIComponent('caractere CJK'));
// Três bytes: "%E4%B8%AD"

console.log(encodeURIComponent('emoji'));
// Quatro bytes: "%F0%9F%98%80"

// Você pode verificar decodificando
console.log(decodeURIComponent('%C3%BC'));  // u com trema
console.log(decodeURIComponent('%E4%B8%AD')); // caractere CJK

Artigos relacionados

Experimente as nossas ferramentas gratuitas