¿Componente o URL completa?
Usa «Componente» para codificar una sola pieza, como el valor de un parámetro o un segmento de ruta: se escapa todo salvo letras, dígitos y - _ . ! ~ * ' ( ). Es lo que necesitas para un término de búsqueda con &, = o /. Usa «URL completa» cuando tengas una dirección entera y solo quieras escapar los caracteres no permitidos, como espacios y letras no ASCII, dejando intactos los caracteres de estructura : / ? & = #.
Caracteres no ASCII
Los caracteres fuera de ASCII se convierten primero a UTF-8 y cada byte se escribe como %XX, así que «é» pasa a %C3%A9. Es la codificación que hoy esperan navegadores y servidores. Decodificar lo revierte; si un % no va seguido de dos dígitos hexadecimales, recibes un error claro en vez de una respuesta equivocada en silencio.
El signo más
En los formularios HTML (application/x-www-form-urlencoded), el espacio se escribe + en lugar de %20. Al decodificar datos copiados de una cadena de consulta así, marca «Decodificar + como espacio». Déjalo desmarcado para rutas de URL normales, donde + significa de verdad un signo más.
Ejemplo
Codificación de un valor con espacios, el signo del euro y caracteres reservados.
Entrada
price=10€ & size=M/L
Resultado
price%3D10%E2%82%AC%20%26%20size%3DM%2FL
