Pular para o conteúdo

Codificador de URL: Escape Caracteres Especiais em URLs Online Grátis

Ferramenta gratuita para escapar strings de URL que codifica caracteres especiais instantaneamente. Converta espaços, Unicode e símbolos para o formato de codificação por porcentagem. Perfeito para APIs, formulários web e URLs internacionais. Experimente agora!

Codificador de String de URL

Calculadora de carregamento...
📚

Documentação

Codificação de URL: o que é e como funciona

A codificação de URL, também chamada de codificação por porcentagem, é uma forma de representar caracteres em um endereço da web usando apenas um pequeno conjunto de caracteres ASCII seguros. Ela funciona substituindo um caractere inseguro por um sinal % seguido de dois dígitos hexadecimais. Esta ferramenta de escape de strings de URL codifica o texto da mesma forma que a função nativa encodeURIComponent do JavaScript.

Por que as URLs precisam de codificação

Uma URL só pode conter um conjunto limitado de caracteres: letras, dígitos e alguns sinais de pontuação. Espaços, letras acentuadas, caracteres de alfabetos não latinos e símbolos como & ou = podem quebrar uma URL ou alterar seu significado se aparecerem nela sem codificação. Um espaço dentro de um link, por exemplo, pode fazer um navegador ou servidor interpretar a URL como duas partes separadas. A codificação percentual substitui esses caracteres por um código que todos os navegadores e servidores conseguem interpretar da mesma maneira.

Caracteres que esta ferramenta deixa inalterados

Esta ferramenta nunca altera os caracteres a seguir. Eles passam diretamente, sem mudança:

  • Letras maiúsculas e minúsculas: A–Z, a–z
  • Dígitos: 0–9
  • Os sinais de pontuação - . _ ~ ! * ' ( )

Todos os outros caracteres são codificados percentualmente, incluindo:

  • O caractere de espaço e sinais de pontuação como : / ? # [ ] @ $ & + , ; =
  • Letras acentuadas e qualquer outro caractere não ASCII ou Unicode
  • O próprio caractere literal %, que sempre se torna %25, mesmo quando já fazia parte de uma sequência codificada percentualmente

Alguns guias gerais sobre a sintaxe de URL agrupam ! * ' ( e ) com outros sinais de pontuação como caracteres que “podem precisar de codificação” em determinados contextos. Esta ferramenta específica não os codifica, pois segue o conjunto de regras de encodeURIComponent, no qual eles são considerados seguros.

Como calcular uma string codificada percentualmente (fórmula)

A ferramenta verifica cada caractere da entrada, um por vez, e aplica esta regra:

  1. Se o caractere for um dos caracteres inalterados listados acima, mantenha-o como está.
  2. Nos demais casos, converta o caractere em sua sequência de bytes UTF-8. A maioria das letras acentuadas do oeste europeu usa dois bytes; caracteres de escritas como o chinês ou o árabe costumam usar três.
  3. Escreva cada byte como um número hexadecimal de dois dígitos.
  4. Coloque um % antes de cada par hexadecimal.
  5. Una os resultados na ordem para formar a string codificada.

Exemplo

Entrada: Jürgen & Björk

Processamento caractere por caractere:

CaractereResultado
JJ (inalterado)
ü%C3%BC (bytes UTF-8 0xC3, 0xBC)
rgenrgen (inalterado)
(espaço)%20
&%26
(espaço)%20
BjBj (inalterado)
ö%C3%B6 (bytes UTF-8 0xC3, 0xB6)
rkrk (inalterado)

Saída: J%C3%BCrgen%20%26%20Bj%C3%B6rk

Um segundo exemplo mostra o conjunto de caracteres inalterados em ação. Codificar a string -_.!~*'() produz -_.!~*'(), exatamente o mesmo texto, pois todos os seus caracteres pertencem ao conjunto de caracteres não reservados. Codificar a string 100% produz 100%25, pois o próprio sinal % não é um caractere seguro.

Decodificação de uma string codificada percentualmente

A decodificação reverte o processo: cada sequência %XX é lida como um byte hexadecimal, os bytes são reagrupados em seu caractere UTF-8 original, e o caractere substitui a sequência. Por exemplo, %C3%BC é decodificado novamente como ü, e %20 é decodificado como um espaço. Esta ferramenta apenas codifica; é necessário um decodificador separado para reverter o processo.

Usos comuns

A codificação percentual é usada sempre que um texto digitado por uma pessoa, e não escrito por um programador, precisa se tornar parte de uma URL:

  • Caixas de pesquisa que colocam o termo pesquisado na barra de endereços, como ?q=shoes%20%26%20bags
  • Parâmetros de consulta que transportam nomes, endereços ou outros dados do usuário
  • Links para páginas com títulos em idiomas que usam letras acentuadas ou alfabetos não latinos
  • Solicitações de API que passam tokens ou identificadores como parte da URL

Exemplos de código

1// JavaScript
2encodeURIComponent("Jürgen & Björk");
3// "J%C3%BCrgen%20%26%20Bj%C3%B6rk"
4

História

A ideia de codificar caracteres inseguros em uma URL remonta à RFC 1738 de (4.410 cm) 1994, um dos primeiros documentos a definir o formato de URL. A RFC 3986, publicada em 2005, atualizou as regras e definiu formalmente o conjunto de caracteres "não reservados", que nunca precisam ser codificados. A função encodeURIComponent do JavaScript, na qual esta ferramenta se baseia, segue um conjunto de caracteres não reservados um pouco mais amplo que o da RFC 3986: ela também deixa ! * ' ( e ) sem codificação, de acordo com uma versão anterior da especificação de URI.

Perguntas frequentes

Qual é a diferença entre codificação de URL e escape de URL? São a mesma coisa. Os dois termos descrevem a codificação percentual, na qual um caractere é substituído por % seguido de dois dígitos hexadecimais.

Por que !, *, ', ( e ) permanecem inalterados nesta ferramenta? Esta ferramenta usa encodeURIComponent, que trata esses cinco caracteres como seguros e os deixa exatamente como foram digitados. Outras funções de codificação e alguns servidores ainda podem esperar que eles sejam codificados; portanto, verifique o sistema de destino se isso causar algum problema.

Qual é a diferença entre %20 e + para representar um espaço? Ambos representam um espaço. %20 é a codificação por porcentagem geral para o espaço. O sinal + é um caso especial usado apenas em dados application/x-www-form-urlencoded, o formato dos envios de formulários HTML, e não por esta ferramenta.

Esta ferramenta decodifica textos já codificados? Não. Ela apenas codifica. Se a entrada já contiver um sinal %, esse % será tratado como um caractere literal e se tornará %25 na saída, em vez de permanecer inalterado.

Como são tratados os caracteres não latinos, como texto em chinês ou árabe? Cada caractere é primeiro convertido em sua sequência de bytes UTF-8, e depois cada byte é codificado por porcentagem. A maioria dos caracteres chineses usa três bytes, portanto um caractere chinês produz três grupos %XX na saída.

Devo codificar uma URL inteira ou apenas parte dela? Codifique apenas as partes que contêm dados do usuário, como valores de consulta ou segmentos de caminho, não as partes que formam a estrutura da URL, como https:// e o nome de domínio. Codificar uma URL inteira com um codificador de componentes também transformaria os caracteres :, / e ? em códigos percentuais, quebrando o endereço.

Referências

  1. Internet Engineering Task Force. RFC 3986: Uniform Resource Identifier (URI): Generic Syntax (janeiro de 2005). RFC 3986 — codificação por porcentagem como "%" plus two hexadecimal digits; unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~".
  2. MDN Web Docs (Mozilla). encodeURIComponent(). MDN, encodeURIComponent() — escapa todos os caracteres, exceto A–Z a–z 0–9 - _ . ! ~ * ' e os parênteses.
  3. Internet Engineering Task Force. RFC 1738: Uniform Resource Locators (URL) (dezembro de 1994). RFC 1738 — especificação inicial de URL que define a codificação com "%" mais dois dígitos hexadecimais.
  4. Internet Engineering Task Force. RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax (agosto de 1998). RFC 2396 — conjunto anterior de caracteres não reservados "mark": - _ . ! ~ * ' e os parênteses.
  5. WHATWG. URL Standard. Padrão de URL do WHATWG — application/x-www-form-urlencoded usa "+" para o espaço.