Why URLs need encoding
URLs only allow a limited character set. Spaces, &, ?, #, and non-Latin letters must be converted to %-sequences (a space becomes %20) or links break and query parameters get misread. Encode anything you put into a query string; decode when you need to read a mangled link from logs or analytics.