Si estamos hablando de la codificación de los URL, por ejemplo, pasar de
?parametro="Haga click en 'URL Encode'!"a
%3Fparametro%3D%22Haga+click+en+%27URL+Encode%27%21%22lo tienes explicado en la pregunta
How do I decode or create those %-encodings on the web? del perlfaq9.
Ejemplo:
Using perl Syntax Highlighting
use URI::Escape;
my $original = q(?parametro="Haga click en 'URL Encode'!");
my $escapado = uri_escape( $original );
print "$escapado\n"; # %3Fparametro%3D%22Haga%20click%20en%20%27URL%20Encode%27%21%22
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Si necesitas procesar muchos URL, puedes usar la variante
URI::Escape::XS.
Otra opción es con
URI::Encode:
Using perl Syntax Highlighting
use URI::Encode;
my $original = q(http://dominio.com/directorio del usuario/recurso.ext?parametro);
my $encoder = URI::Encode->new({encode_reserved => 0});
print $encoder->encode($original), "\n"; # http://dominio.com/directorio%20del%20usuario/recurso.ext?parametro
print $encoder->encode($original, 1), "\n"; # http%3A%2F%2Fdominio.com%2Fdirectorio%20del%20usuario%2Frecurso.ext%3Fparametro
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Según el valor de verdad del segundo parámetro, se codificarán o no los caracteres especiales que son legales en un URL. Depende de lo que necesites hacer o cómo sean los datos de partida tendrás que elegir uno u otro. Y
cuidado con las dobles codificaciones (codificar algo que ya está codificado, o no decodificar suficientemente).