Se hacen de forma automática, no hay que hacer nada, es el estandard HTML
http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1http://en.wikipedia.org/wiki/Percent-encodingNo debes hacer nada, el explorador las codifica automáticamente a urlencode al enviarlas.
Ahora, cuando las recibes a tu código php se entregan descifradas y esto lo hace el servidor apache, asi que no necesitas estar codificando y decodificando.
De todas formas si quieres doblar la codificación puedes usar la función urlencode().
<form
method="post">
<input type="hidden" name="var3" value="
<?php echo urlencode($val3); ?>" />
</form>
Saludos