O que é Percent-Encoding (Codificação de URL)?
Guias de Codificação de URL
Uma URL foi originalmente projetada para transportar apenas um conjunto limitado de caracteres ASCII. Coloque um espaço, uma letra não-latina ou um caractere especial como ? ou & diretamente em um endereço e diferentes navegadores ou servidores podem interpretá-lo de forma distinta, ou ele pode quebrar. A solução é o percent-encoding — o que as pessoas normalmente chamam de codificação de URL.
O que significa %XX
O percent-encoding substitui um caractere inseguro pelo seu valor de byte em hexadecimal, precedido por %. Um espaço vira %20, um ponto de interrogação vira %3F. Um caractere formado por vários bytes, como a maioria das letras não-latinas, recebe um %XX por byte UTF-8.
- espaço →
%20 ?→%3F&→%26€(UTF-8) →%E2%82%AC
Por que UTF-8
A web moderna trata o UTF-8 como padrão. O encodeURIComponent do navegador converte o texto em bytes UTF-8 e então transforma cada byte em %XX. Isso significa que o mesmo caractere sempre codifica da mesma maneira, e a decodificação restaura o texto original exatamente.
A ferramenta de codificar/decodificar deste site usa as funções nativas do navegador, então a sua entrada é convertida instantaneamente e nunca é enviada a um servidor.
Quando você precisa dele
Você precisa do percent-encoding sempre que insere uma string arbitrária dentro de parte de um endereço — um link contendo um termo de busca, o valor de um parâmetro de query ou uma URL de destino de redirecionamento colocada dentro de outra URL. Sem codificação, um & ou = no valor pode ser confundido com um separador e cortar o parâmetro antes do fim.