A URI encoder percent-encodes every character that is not safe inside a URI component, which is the subset of characters considered always legal in path segments, query values, or fragments. It behaves like JavaScript encodeURIComponent, so you can test in the browser exactly what your backend will receive. Input is interpreted as UTF-8 so non-ASCII text is encoded byte-by-byte into percent sequences.
Produce the exact encoded form a JavaScript client would send, then feed it into your server to see how it decodes things.
Deep links often embed other URLs as parameters, which requires component-level encoding to survive the outer URL parser.
Content posted to an endpoint as application/x-www-form-urlencoded must be encoded per component to avoid ambiguity.
Campaign parameters full of ampersands and spaces stay intact when each value is encoded as a URI component first.
URI encoding follows RFC 3986 for URI components specifically. In practice, for most web use cases the output matches standard URL encoding.
Letters, digits, and the set - _ . ~. Everything else including reserved delimiters becomes a percent sequence.
This encodes each string as a component. To encode a whole URL while keeping slashes and colons intact, use the URL encoder instead.
Yes. Emoji are encoded as their UTF-8 byte sequence, typically four bytes and therefore four percent escapes per emoji.