• Become a Power user Intro to AutoHotkey Intermediate AutoHotkey Intermediate Objects GUIs are Easy w/AutoHotkey Painlessly switch from V1 to V2

Great AutoHotkey script to URL Encode/Decode and parse URL parameters

parse url parameters

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

;***********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

!w:: ;Decode URL and Wrap on parameters
gosub Store_Clipboard_Copy_Selected_Text
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

;*******Store Clipboard- save for restoring, and copy selected text to clipboard****************
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

;**********************restore clipboard*********************************
Paste_and_Restore_Stored_Clipboard:  ;put back original content
SendEvent , ^v

uriDecode(str) {
	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]"){
    While Code:=NumGet(Var,A_Index-1,"UChar")

If this interested you, you might also want to investigate using web scraping with AHK.