Unit for URL Encoding and Decoding in FreePascal
Inspired by the Rosetta Code challenges for encoding and decoding url's
Copy to your project, add urlEncodeDecode to your uses and you're good to go.
Both functions return an AnsiString.
urlEncode('a url');
urlDecode('a url');