function multiDecode() {
CTXT="$@"
while true; do
echo "$CTXT" | grep '=?' > /dev/null
if [ $? -ne 0 ]; then
echo -n "$CTXT"
return 0
else
PAT="$(echo $CTXT | perl -ne 's|.*\=\?(.+)\?\=.*|$1|;print')"
RPAT="=?${PAT}?="
A_CONTENT=(${PAT//\?/ })
if [ "x${A_CONTENT[1]}" == "xQ" -o "x${A_CONTENT[1]}" == "xq" ]; then
CRES="$(echo "${A_CONTENT[2]}" | qprint -d | sed 's|\&|\+|g' | iconv -t ${A_CONTENT[0]})"
else
CRES="$(echo "${A_CONTENT[2]}" | base64 -i -d | sed 's|\&|\+|g' | iconv -t ${A_CONTENT[0]} )"
fi
XRES="$(echo "$CTXT" | sed "s|$RPAT|$CRES|")"
CTXT="$XRES"
fi
done
}
Like this:
Like Loading...
Related