URL Encoder and Decoder Online — percent encoding, encodeURIComponent, encodeURI

Encode and decode URLs

URL Encoder / Decoder

Encode URLs or decode percent-encoded URLs back to readable form, with two clearly explained modes: Component mode (encodeURIComponent) escapes every reserved character and is the right choice for query-string values like UTM parameters, Google Analytics attribution, hreflang tags, and XML sitemap URLs; Full URL mode (encodeURI) preserves path separators and is meant for entire URLs that already contain protocol and domain. Live mode re-encodes as you type, so you can verify Cyrillic, Chinese, Arabic, or accented characters render correctly inside a URL before you ship. Use it to prepare clean social-media preview URLs, normalize UTM tags across ad campaigns, fix broken hreflang or sitemap entries, and safely embed special characters in API endpoints. A swap button flips between encoded and decoded text in one click, and large query strings are handled without any size cap. Everything runs 100% locally in your browser — your URLs, UTM parameters, and tracking data never leave your device.

Encode query strings and full URLs the right way

Component mode applies encodeURIComponent — the correct choice for individual query parameter values like utm_campaign, search queries, and hash fragments — while Full URL mode applies encodeURI, which preserves the scheme, host, and path separators of an already-formed URL. Inline helper text explains when to use each mode, so you stop second-guessing whether a space should become %20 or +. Live mode re-encodes on every keystroke, perfect for iterating on tracking links and API queries.

Local URL encoding for tracking links and international URLs

Every encode and decode runs in your browser with no upload, so UTM-tagged URLs containing internal campaign names, customer IDs, or referral codes never leak to a third-party service. Cyrillic, CJK, and emoji characters in internationalized domain names and path segments are encoded correctly per RFC 3986, and decoding handles malformed percent-sequences gracefully. Use it on staging links, internal redirect rules, and unreleased landing-page URLs without risk.

Frequently Asked Questions (FAQ)

It encodes special characters into percent-encoded form (space → %20, & → %26, Cyrillic → %D0%B0) and decodes percent-encoded strings back to readable text. Both operations run locally in your browser.

Component mode applies encodeURIComponent, which escapes every reserved character — the right choice for individual query parameter values like utm_campaign and search queries. Full URL mode applies encodeURI, which preserves scheme, host, and path separators so an already-formed URL stays structurally intact.

Use Component when you are encoding a single parameter value that will be appended to a URL — for example, a UTM campaign name or a search query. Use Full URL when you have a complete URL that just needs its special characters made safe — for example, a Cyrillic internationalized domain name.

Live mode re-encodes or re-decodes on every keystroke, so the output updates as you type. It is useful when you are iterating on tracking links and API queries and want instant feedback.

Yes. Cyrillic, CJK characters, accented Latin, and emoji are all encoded per RFC 3986. Decoding handles malformed percent-sequences gracefully, so partially-encoded URLs still produce readable output.

No. Every encode and decode runs in your browser with no upload. UTM-tagged URLs containing internal campaign names, customer IDs, or referral codes never leak to a third-party service.

The round button between the input and output panes reverses the operation in one click: it takes the current output, moves it into the input field, and flips the mode from Encode to Decode (or back). It is the fastest way to round-trip a value — encode a URL, then press swap to confirm the encoded form decodes back to the original text without retyping anything.

Yes. Switch from Single to Batch mode and paste one URL per line. Each line is encoded or decoded independently, a live counter shows how many non-empty lines were processed, and a malformed line is kept as-is and reported with a warning count instead of breaking the whole batch. The result can be copied or downloaded as a .txt file — handy for cleaning up exported UTM lists or log files.