urlencode () { echo "$@" | awk -v ORS="" '{ gsub(/./,"&\n") ; print }' | while read l; do case "$l" in [-_.~a-zA-Z0-9] ) echo -n ${l} ;; "" ) echo -n %20 ;; * ) printf '%%%02X' "'$l" esac done echo "" }