RFC 2396 URL encoding in Z-Shell

Stolen from Bart Schaefer. Isn't it so pretty?

urlencode() {
    setopt localoptions extendedglob
    input=( ${(s::)1} )
    print ${(j::)input/(#b)([^A-Za-z0-9_.!~*\'\(\)-])/%$(([##16]#match))}
}
Posted on 2005-11-06
Tags: