Component vs full URL encoding
Component mode (encodeURIComponent) encodes everything that is not a letter, digit or one of - _ . ! ~ * ' ( ). Use it for a single query value or path segment.
Full URL mode (encodeURI) keeps characters like : / ? & = so the URL still works, and only encodes spaces and other unsafe characters.
Why does a space become %20 or +?
In URLs a space is %20. HTML forms encode spaces as + inside query strings. This tool's decoder handles both.