Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save CesarCapillas/d3317213413f2913d99e2a301cad0ce0 to your computer and use it in GitHub Desktop.

Select an option

Save CesarCapillas/d3317213413f2913d99e2a301cad0ce0 to your computer and use it in GitHub Desktop.
Bash urlencode and urldecode
#!/bin/bash
urlencode() {
# Usage: urlencode string
local l=${#1}
for (( i = 0 ; i < l ; i++ )); do
local c=${1:i:1}
case "$c" in
[a-zA-Z0-9.~_-]) printf "$c" ;;
' ') printf + ;;
*) printf '%%%X' "'$c"
esac
done
}
urldecode() {
# Usage: urldecode string
local data=${1//+/ }
printf '%b' "${data//%/\x}"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment