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
Documentação
Codificação de URL: o que é e como funciona
A codificação de URL, também chamada de codificação percentual, é 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 não seguro por um sinal % seguido de dois dígitos hexadecimais. Esta ferramenta de escape de strings de URL codifica textos da mesma forma que a função integrada 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:
- 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:
- Se o caractere for um dos caracteres inalterados listados acima, mantenha-o como está.
- Caso contrário, converta o caractere em sua sequência de bytes UTF-8. Letras latinas acentuadas, gregas, cirílicas e árabes usam dois bytes. Caracteres chineses, japoneses e coreanos usam três. Emojis usam quatro.
- Escreva cada byte como um número hexadecimal de dois dígitos.
- Coloque um
%antes de cada par hexadecimal. - Una os resultados na ordem para formar a string codificada.
Exemplo prático
Entrada: Jürgen & Björk
Processamento caractere por caractere:
| Caractere | Resultado |
|---|---|
J | J (inalterado) |
ü | %C3%BC (bytes UTF-8 0xC3, 0xBC) |
rgen | rgen (inalterado) |
(espaço) | %20 |
& | %26 |
(espaço) | %20 |
Bj | Bj (inalterado) |
ö | %C3%B6 (bytes UTF-8 0xC3, 0xB6) |
rk | rk (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"
41# Python
2import urllib.parse
3urllib.parse.quote("Jürgen & Björk", safe="!*'()")
4# 'J%C3%BCrgen%20%26%20Bj%C3%B6rk'
5O quote do Python sempre deixa letras, dígitos e - . _ ~ inalterados. Os cinco
caracteres extras ! * ' ( ) precisam ser listados em safe para corresponder a esta ferramenta. Sem
eles, quote retorna %21 %2A %27 %28 %29 no lugar.
História
A ideia de codificar caracteres não seguros em uma URL remonta à RFC 1738 em (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 de codificação. encodeURIComponent, a função JavaScript na qual esta ferramenta se baseia, segue um conjunto de caracteres não reservados ligeiramente mais amplo que o da RFC 3986: ela também deixa ! * ' ( e ) sem codificação, conforme uma versão anterior da especificação de URI.
Dúvidas 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 percentual geral para um espaço. O sinal + é um caso especial usado apenas em dados application/x-www-form-urlencoded, o formato usado pelos 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 os caracteres não latinos, como textos em chinês ou árabe, são tratados?
Cada caractere é primeiro convertido em sua sequência de bytes UTF-8; depois, cada byte é codificado percentualmente. Um caractere chinês usa três bytes, portanto produz três grupos %XX. Uma letra árabe usa dois bytes, portanto produz dois.
Quando a ferramenta se recusa a codificar um texto? Somente quando o texto contém metade de um par substituto. Um par substituto é o código de duas partes que armazena um caractere acima de U+FFFF, como um emoji. Uma metade isolada não tem uma forma UTF-8 válida, então a ferramenta exibe um erro em vez de um resultado. Uma digitação comum não pode produzir isso; normalmente, o caractere chega de uma cópia truncada ou de um link corrompido.
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.