问题描述
如何对bash中的所有字符进行网址编码?
例如:
abcd0123 => %61%62%63%64%30%31%32%33
我尝试了Linux中的内置urlencode函数,但它仅编码(。?)之类的特殊字符
解决方法
我不认为这在纯Bash中是可行的,但是可以将其他shell实用程序捆绑在一起以实现此结果,例如
urlencode() {
printf %s "$1" | od -An -tx1 -v -w${#1} | tr ' ' %
}
urlencode abcd0123 # => %61%62%63%64%30%31%32%33