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
encode() {
local len="${#1}"
for (( i = 0 ; i < len ; i++ )); do
offsetByte="${1:i:1}"
case "${offsetByte}" in
[a-zA-Z0-9.~_-]) printf "${offsetByte}" ;;
' ') printf + ;;
*) printf '%%%X' "'${offsetByte}"
esac
done
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment