19 lines
582 B
Awk
19 lines
582 B
Awk
# syntax: GAWK -f URL_DECODING.AWK
|
|
BEGIN {
|
|
str = "http%3A%2F%2Ffoo%20bar%2F" # "http://foo bar/"
|
|
printf("%s\n",str)
|
|
while (match(str,/%/)) {
|
|
L = substr(str,1,RSTART-1) # chars to left of "%"
|
|
M = substr(str,RSTART+1,2) # 2 chars to right of "%"
|
|
R = substr(str,RSTART+3) # chars to right of "%xx"
|
|
str = sprintf("%s%c%s",L,hex2dec(M),R)
|
|
}
|
|
printf("%s\n",str)
|
|
exit(0)
|
|
}
|
|
function hex2dec(s, num) {
|
|
num = index("0123456789ABCDEF",toupper(substr(s,length(s)))) - 1
|
|
sub(/.$/,"",s)
|
|
return num + (length(s) ? 16*hex2dec(s) : 0)
|
|
}
|