Codificacao URL
Codificar e decodificar URL
Entrada
Resultado
Codificacao URL: por que certos caracteres precisam ser transformados
As URLs so aceitam um conjunto limitado de caracteres: letras, numeros e poucos simbolos. Quando aparece um espaco, um acento ou um caractere especial, ele precisa ser convertido para o formato %XX -- o que se chama de codificacao percentual. Sem isso, o servidor pode nao entender a requisicao.
Por que a codificacao URL e indispensavel
URLs seguem o padrao RFC 3986 e so aceitam caracteres alfanumericos mais alguns caracteres especiais (-._~). Um espaco, um c cedilha ou um acento numa URL, e o servidor pode falhar na interpretacao. Os caracteres & e = funcionam como separadores de parametros de consulta: se aparecem nos dados em si, precisam ser codificados para evitar ambiguidade. A codificacao URL e, simplesmente, o mecanismo basico que permite transmitir dados de forma confiavel na web.
Os caracteres que sao codificados com mais frequencia
Espacos viram %20 (ou + em alguns contextos), o & passa a ser %26, o = vira %3D e o ? se transforma em %3F. Os caracteres acentuados do portugues sao codificados em UTF-8, gerando varias sequencias %XX por caractere. A barra (/) serve como separador de caminho e so deve ser codificada quando faz parte de um valor de parametro. Conhecer essas regras evita os bugs tipicos de URLs mal formadas.
Boas praticas para desenvolvedores
A regra de ouro: codifique apenas os valores dos parametros de consulta, nunca a estrutura da URL em si. Em JavaScript, use encodeURIComponent() para valores e encodeURI() para URLs completas. Em Python, e urllib.parse.quote(). A codificacao dupla -- quando voce codifica uma string que ja esta codificada -- e um erro classico: voce acaba com %2520 no lugar de %20. Lembre-se sempre de codificar os valores de parametros nas suas chamadas de API, porque eles podem conter caracteres especiais inesperados.