La codificación porcentual sustituye los caracteres que tienen significado propio dentro de una URL, o que no pueden aparecer allí, por un signo de porcentaje y el valor hexadecimal de sus bytes. Un espacio pasa a %20 y una ñ a %C3%B1.
Lo decisivo es qué se está codificando. Un valor de parámetro necesita la codificación completa: ahí también el ampersand tiene que irse, o el servidor partirá la dirección donde no debe.
Dirección completa o valor suelto
En una dirección entera, los dos puntos, la barra, la interrogación y el ampersand tienen que quedarse: son la estructura. Solo se codifican los espacios, las tildes y todo lo que no pinta nada en una URL.
Con un valor suelto pasa lo contrario: ahí un ampersand no separa nada, es contenido, y por eso debe convertirse en %26. Esa confusión es la causa más habitual de parámetros que llegan cortados por la mitad.
El caso especial del espacio
Dentro de una URL el espacio se codifica como %20. En los datos de formulario enviados como application/x-www-form-urlencoded se usa en su lugar un signo más, herencia de los primeros formularios HTML.
Las dos formas aparecen a diario, y un servidor que espere la equivocada devolverá o un signo más en mitad del texto o un espacio de menos. Por eso la calculadora muestra las dos.