Rewrite urlencode implementation
This commit is contained in:
parent
168ad13db3
commit
5be0482a1f
|
@ -111,10 +111,20 @@ _aliapi_signature_nonce() {
|
||||||
}
|
}
|
||||||
|
|
||||||
_aliapi_urlencode() {
|
_aliapi_urlencode() {
|
||||||
local result
|
if [[ ${LC_ALL:-X} != C ]]; then
|
||||||
result=$(curl --get --silent --output /dev/null --write-out "%{url_effective}" --data-urlencode "=$1" "")
|
LC_ALL=C _aliapi_urlencode "$@"
|
||||||
result="${result//+/%20}" # 替换 + 为 %20
|
return $?
|
||||||
echo "${result#*\?}"
|
fi
|
||||||
|
local char string=$1
|
||||||
|
while [[ -n $string ]]; do
|
||||||
|
char=${string:0:1}
|
||||||
|
string=${string:1}
|
||||||
|
case $char in
|
||||||
|
[-._~0-9A-Za-z]) printf %c "$char";;
|
||||||
|
*) printf %%%02X "'$char";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ ${#BASH_SOURCE[@]} -eq 1 ]]; then
|
if [[ ${#BASH_SOURCE[@]} -eq 1 ]]; then
|
||||||
|
|
Loading…
Reference in New Issue