最近用shell开发web项目
很多地方需要用到对url的转义操作
urlencode() {
local LANG=C
local length="${#1}"
i=0
while :
do
[ $length -gt $i ]&&{
local c="${1:$i:1}"
case $c in
[a-zA-Z0-9.~_-]) printf "$c" ;;
*) printf '%%%02X' "'$c" ;;
esac
}||break
let i++
done
}
urldecode(){
u="${1//+/ }"
echo -e "${u//%/\\x}"
}
执行的时候
直接使用
urlencode "需要转义的参数"
urldecode "需要解码的字符串"
原生的shell支持 busybox以及bash都可以兼容

评论