es natural que te salga mal, ya que la forma en la que lo haces esta mal...
todos los atributos HTML deben usar comillas dobles para encerrar los valores...
Código HTML:
<a href="url.php?valor con espacios">bar</a>
si lo sigues haciendo de la forma incorrecta, por eso tus errores...
NOTA que si puedes usar
urlencode() adicionalmente, pero igualmente lo estas haciendo mal... ya que debes concatenar la función...
Código PHP:
echo '<a href="url.php?candy=' . urlencode($bar) . '">enlace</a>';
suerte!!