urldecode
percent-decode and -encode a string, all four JS variants side by side
The URI variants leave the characters that structure a URL alone
(; , / ? : @ & = + $ #); the URIComponent variants
escape them too, which is what you want for a single query value.
MDN: encodeURI ·
encodeURIComponent
Runs entirely in your browser; nothing is sent anywhere. The input is kept in the URL fragment so you can link a result — the fragment never reaches the server.