Chinaunix
标题:
Shell 进行 URL编码
[打印本页]
作者:
forgaoqiang
时间:
2013-08-14 13:54
标题:
Shell 进行 URL编码
本帖最后由 forgaoqiang 于 2013-08-14 14:04 编辑
文件名称 urlencode.sh
#!/bin/sh
# 从环境变量中读取数据
if test -z "$1"
then
echo "Lack of Argument!!"
return 1
fi
echo "$1" |
LANG=C awk '
function char2hex(char){
for(j=0;j<256;j++)
{
tmp=sprintf("%c",j);
if(tmp==char){
return sprintf("%%%X",j);
}
}
return char;
}
BEGIN{
FS="";
OFS="";
}
{
for(i=1;i<=NF;i++) $i=char2hex($i);
print;
}
'
复制代码
使用方法
./urlencode.sh "www.chinaunix.net/forum.php?mod=post&balabalba"
话说挺牛x的思想,使用awk继续两次 %X 这样UTF-8也能进行编码,中文内容也不在话下~~
作者:
rdcwayx
时间:
2013-08-28 14:20
楼主看看这个。
http://www.gnu.org/software/gawk ... tml#Control-Letters
%%
Print a single ‘%’. This does not consume an argument and it ignores any modifiers.
复制代码
作者:
forgaoqiang
时间:
2013-08-28 15:09
哦 当时 没有看官方文档 自己做了简单的测试 % %% 以为是做两次计算了
⊙﹏⊙b汗 感谢提醒~
rdcwayx 发表于 2013-08-28 14:20
楼主看看这个。
http://www.gnu.org/software/gawk ... .html#Control-Lette
...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2