linux shell实现 URL 编码/解码方法
(1)编码的两种方法
# echo '手机' | tr -d '\n' | xxd -plain | sed 's/\(..\)/%\1/g'
# echo '手机' |tr -d '\n' |od -An -tx1|tr ' ' %
(2)解码的两个步骤:
# url="要解码的URL地址"
# printf $(echo -n $url | sed 's/\\/\\\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')"\n"
需要注意的是,采用上述方式转换后的编码每一行的长度是固定的,超过长度后会被分成几行,中间以空格隔开
#/bin/bash
datetime=`date`
mobile="$1"
content1="$2"
content2=`echo $content1|sed 's/ /+/g'|sed 's/%/%25/g'`
encodeurl=`echo $content2 |tr -d '\n' |od -An -tx1|tr ' ' % `
encodeurl=`echo $encodeurl |sed s/[[:space:]]//g`