RosettaCodeData/Task/URL-encoding/AutoHotkey/url-encoding.ahk

18 lines
516 B
AutoHotkey
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
MsgBox, % UriEncode("http://foo bar/")
; Modified from http://goo.gl/0a0iJq
UriEncode(Uri, Reserved:="!#$&'()*+,/:;=?@[]") {
Unreserved := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~"
2026-04-30 12:34:36 -04:00
VarSetCapacity(Var, StrPut(Uri, "UTF-8"), 0)
StrPut(Uri, &Var, "UTF-8")
While (Code := NumGet(Var, A_Index - 1, "UChar")) {
If InStr(Unreserved . Reserved, Chr(Code)) {
Encoded .= Chr(Code)
2023-07-01 11:58:00 -04:00
}
2026-04-30 12:34:36 -04:00
Else {
Encoded .= Format("%{:02X}", Code)
2023-07-01 11:58:00 -04:00
}
}
2026-04-30 12:34:36 -04:00
Return Encoded
2023-07-01 11:58:00 -04:00
}