Quando usar cada modo
Caracteres como espaço, acentos, &, ? e = têm significado especial numa URL. O percent-encoding substitui esses caracteres por %XX para que sejam transmitidos com segurança.
- Componente (
encodeURIComponent): use para codificar um valor que vai dentro da query string, como o conteúdo de um parâmetro. Codifica também&,=,/e?. - URL inteira (
encodeURI): use quando já tem a URL montada e só quer escapar espaços e acentos, preservando a estrutura (://,/,?,&).
Perguntas frequentes
Por que o espaço vira %20 (ou +)?
Na URL, o espaço é codificado como %20. Em formulários enviados como application/x-www-form-urlencoded, ele costuma virar +. Aqui usamos o padrão de URL (%20).
Decodificar falhou, e agora?
Sequências % malformadas (ex.: %ZZ ou % solto) causam erro. Verifique se o texto colado é realmente uma URL codificada válida.