2025-06-03 04:13:01
03 06 2025
摘要:bash、linux、mingw64

一、使用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、完毕。

延伸阅读
  1. 上一篇:JDK
  2. 下一篇:Nginx
发表评论