
Working in email marketing and Website design I frequently need to URL Encode / Decode and parse URL parameters. This short AutoHotkey script makes doing so a breeze! I watch my colleagues struggle through trying to read encoded URLs or try and find every parameters in a given URL. With this script you can see just how easy it is to decode a URL and then parse it on the “?” then by every “&” putting them on new lines.
A second usage is to help examine how websites use URL Parameters to serve-up a webpage. This can be very helpful when doing Web Scraping as you can automate generating the page from a given website.
Video demonstrating how to Parse URL Parameters
AutoHotkey script to Parse URL Parameters
#SingleInstance, Force
;***********Encode URL*******************
!e:: ; alt+e encodes highlighted text
gosub Store_Clipboard_Copy_Selected_Text ;backup original clipboard
Clipboard:=UriEncode(clipboard) ;convert to URL encoded
Gosub Paste_and_Restore_Stored_Clipboard ;restore clipboard
return
;***********Decode URL*******************
!d:: ;Alt+d will Decode highlighted text
gosub Store_Clipboard_Copy_Selected_Text
Clipboard:=URiDecode(clipboard) ;Decode URL
Gosub Paste_and_Restore_Stored_Clipboard ;restore clipboard
return
!w:: ;Decode URL and Wrap on parameters
gosub Store_Clipboard_Copy_Selected_Text
clipboard:=URiDecode(clipboard)
StringReplace,clipboard,clipboard,?,`r`n`t?,All ;Line break and tab indent <strong>parse URL parameters</strong>.
StringReplace,clipboard,clipboard,&,`r`n`t`t&,All ;Line break and double tab indent
Gosub Paste_and_Restore_Stored_Clipboard
return
;******************************
;*******Store Clipboard- save for restoring, and copy selected text to clipboard****************
Store_Clipboard_Copy_Selected_Text:
Store:=ClipboardAll ;Store full version of Clipboard
clipboard = ; Empty the clipboard
SendInput, ^c ;changd from Send 11/23
ClipWait, 1
If ErrorLevel ;Added errorLevel checking
{
MsgBox, No text was sent to clipboard
Return
}
return
;**********************restore clipboard*********************************
Paste_and_Restore_Stored_Clipboard: ;put back original content
SendEvent , ^v
Clipboard:=Store
return
;***********https://autohotkey.com/board/topic/17367-url-encoding-and-decoding-of-special-characters/*******************
uriDecode(str) {
Loop
If RegExMatch(str, "i)(?<=%)[\da-f]{1,2}", hex)
StringReplace, str, str, `%%hex%, % Chr("0x" . hex), All
Else Break
Return, str
}
UriEncode(Uri, RE="[0-9A-Za-z]"){
VarSetCapacity(Var,StrPut(Uri,"UTF-8"),0),StrPut(Uri,&Var,"UTF-8")
While Code:=NumGet(Var,A_Index-1,"UChar")
Res.=(Chr:=Chr(Code))~=RE?Chr:Format("%{:02X}",Code)
Return,Res
}
If this interested you, you might also want to investigate using web scraping with AHK.

