Encode text for safe use in a URL or decode percent-encoded strings back to readable text. Component and full-URL modes are separate, because they escape different characters, and there is a query string parser that breaks a URL into its parameters.
Full-URL encoding leaves structural characters like : / ? & = intact so the URL still works. Component encoding escapes them too, which is what you need for a value going inside a query parameter. Using the wrong one is a classic source of broken links.
Both appear. %20 is correct percent-encoding and works anywhere in a URL. The + form comes from HTML form submission, where it is only valid inside a query string. Decoders need to know which convention was used.