URLs are not free-form text. They use a restricted character set, and anything outside that set — spaces, ampersands, non-ASCII letters, emoji — must be written as percent-encoded bytes so servers and browsers agree on the same string.
This guide explains percent encoding, the difference between encoding a full URI and encoding one component, how query parameters break when you skip encoding, UTF-8 for international text, and a practical encode/decode workflow. Practice with the free URL encoder decoder whenever you need a quick convert without writing a script.
If you mix up encoding layers (percent encoding versus Base64, for example), links and APIs fail in ways that look random. The sections below keep those layers straight.