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.