一、使用bash实现urlencode编码
1、创建一个urlencode.sh文件并写入内容
cat> urlencode.sh << 'eof'
#!/bin/bash
urlencode() {
local string="${1}"
local encoded=""
local length=${#string}
# 确保使用 UTF-8 编码环境
#export LC_ALL=C.UTF-8
LC_ALL=C.UTF-8
for (( i=0; i<length; i++ )); do
char="${string:$i:1}"
# 判断是否为保留字符
if [[ "$char" =~ [A-Za-z0-9\-_.~] ]]; then
encoded+="$char"
elif [[ "$char" == " " ]]; then
#encoded+="%20" # RFC 3986 标准空格编码
encoded+="+"
else
# 获取 UTF-8 字节序列(十六进制)
hex_bytes=($(printf "%s" "$char" | od -An -tx1))
for byte in "${hex_bytes[@]}"; do
encoded+="%${byte}"
done
fi
done
echo "$encoded"
}
urlencode "$1"
eof
2、赋予可执行的权限
chmod 755 urlencode.sh
3、测试编码效果
./urlencode.sh "中 华人民共和国" #输出如下内容:%e4%b8%ad+%e5%8d%8e%e4%ba%ba%e6%b0%91%e5%85%b1%e5%92%8c%e5%9b%bd
4、完毕。
非特殊说明,本文版权归HPay所有,转载请注明出处.
本文类型: Java工具