Los siguientes caracteres son los únicos que se pueden utilizar en una URL:
[a-zA-Z0-9-._~]
El resto, se deben codificar usando el prefijo %
seguido del valor
ASCII hexadecimal del carácter. Por ejemplo:
( = %28
) = %29
/ = %2F
+ = %2B
...
Para codificar la URL podemos utilizar la función uri_escape
del
módulo URI
de Perl.
alias urlenc='furlenc() { perl -MURI::Escape -e "print uri_escape(\"$1\").\"\n\";"; }; furlenc'
$ urlenc http://www.google.com
http%3A%2F%2Fwww.google.com
Para la decodificación de la URL, podemos hacer uso de sed
:
alias urldec='furldec() { echo "$1" | sed -e'\''s/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g'\'' | xargs echo -e; }; furldec'
$ urldec http%3A%2F%2Fwww.google.com
http://www.google.com