Skip to main content
Develop Tools
← Return to usage guide

URL Encoder / Decoder | Complete guide to usage, settings, and troubleshooting

"東京都杉並区" becomes a form such as %E6%9D%B1… when its UTF-8 byte sequence is percent-encoded. If text is garbled, check the original encoding, number of decode operations, and which URL component was processed before suspecting another scheme such as Base64.

Flow for converting Japanese to UTF-8 Byte sequences, applying Percent Encoding, and Decoding back to the original
Flow for converting Japanese to UTF-8 Byte sequences, applying Percent Encoding, and Decoding back to the original

Convert a URL in the browser

Encode Japanese, Spaces, and symbols into a URL-compatible format, and Decode strings such as %E6%97%A5. You can choose and inspect the full URL, URL components, or form format.

Open URL Encoder / Decoder

Conclusion: Encode in UTF-8 and compare the Japanese original after a round trip

Encode Japanese text as a URL component, then decode the generated result once and check whether it returns to the same text. If %25 remains, as in %25E6, it may be double-encoded.

If the original data uses a non-UTF-8 encoding such as Shift_JIS, decodeURIComponent alone may not restore correct Japanese. Check the original bytes and the sender's encoding.

Keep the original string, decide whether to convert the entire URL, Path, Query Value, or Fragment, then run it.

Check Japanese mojibake by stage

JavaScript encodeURIComponent converts a Unicode string into escape sequences corresponding to UTF-8 representation. The decode side also requires sequences that are valid as UTF-8.

This tool assumes UTF-8. It cannot select arbitrary legacy encodings and does not automatically repair missing byte sequences or already-mojibaked text.

Account to checkWhat to checkSupported
Original TextJapanese and EmojiCheck UTF-8
Input%E6 or %25E6Determine the number of decode operations
RangeFull URL / ValueSelect format
ResultRound Trip matchAlso check the code point

Procedure for checking with URL Encoder / Decoder

  1. Choose URL components and Encode.
  2. Enter Suginami City, Tokyo, or Emoji.
  3. Swap the result and Decode it.
  4. Verify that it matches the original text character by character.

You can also confirm in the on-screen statistics that character count and UTF-8 byte count differ.

How to isolate issues when conversion fails or results differ

Mojibake such as こ may indicate that UTF-8 bytes were read as another encoding. If only % remains, check for insufficient decoding or double encoding.

The result also changes if the entire URL was decoded with decodeURIComponent along the way, decoding occurred twice in the Proxy and Application, or the input was truncated.

  • Whether the original encoding is UTF-8
  • Whether %25 was decoded only once
  • Check for incomplete UTF-8 sequences.
  • Check whether the Server performs additional Decode.

Supported scope of the current URL Encoder / Decoder

DevelopTools processes input strings in the browser. It converts URL components according to encodeURIComponent / decodeURIComponent, whole URLs according to encodeURI / decodeURI, and form format according to application/x-www-form-urlencoded rules for spaces and +. It supports an RFC 3986-compliant option, one decode or up to five decodes, multiple-encoding detection, invalid %XX position display, URL structure and query parameter parsing, copying, swapping, clearing all, and displaying character count, UTF-8 byte count, converted locations, and size changes.

FunctionCurrent tool operation
URL componentConvert Query Values and search terms, and Percent Encode &, =, ?, and similar characters as Data.
URLConvert Japanese text and Spaces while preserving Scheme, Host, Path, Query, and Fragment separators.
Form formatConvert spaces to + when encoding and treat + as spaces when decoding
Error handlingProvide on-screen messages for incomplete %XX, invalid UTF-8 sequences, and isolated surrogates.
ParsingDisplay Protocol, Host, Path, Query, Fragment, and Parameters including duplicates and empty values with the URL API

Do not confuse URL Encoding with encryption or Secret protection

URL Encoding is not encryption. %XX is reversible Encoding that represents bytes in a form URLs can handle, and can be restored by Decoding. Encoding Tokens, Email addresses, User IDs, Internal Hosts, JWTs, or Session Identifiers does not make them secret.

URLs may remain in Browser History, Server Logs, Referers, Analytics, and screen shares. Reconsider designs that put Secrets in Queries, and use only Dummy values such as SAMPLE_TOKEN and example.com in examples. The current Tool does not store inputs or results in a conversion API, history, or LocalStorage.

Before sharing a URL, check that it does not contain User Information, Tokens, Passwords, customer names, or internal Hosts.

Check the specification and Web API using primary sources

Use RFC 3986 for general URI syntax, reserved characters, and percent-encoding; the WHATWG URL Standard for current browser URL handling and application/x-www-form-urlencoded; and ECMAScript and MDN for JavaScript API behavior.

Example: Round-trip 東京都杉並区 in UTF-8

Confirm that seven Japanese characters expand into multiple %XX sequences.

Decoding the encoded result once returns the original address, and you can also check the difference in character and byte counts.

  1. Record the original text
  2. Encode by URL component
  3. Decode the result once
  4. Compare with the original text

Use fictional samples instead of real data such as addresses and names.

Frequently asked questions

Can URL encoding safely send confidential information?
No. Percent-Encoding is not encryption and can be reversed. Putting Tokens or Passwords in URLs may leave them in History, Logs, and elsewhere.
Is the entered URL sent to a server?
URL conversion and parsing are performed in your current browser. Input and results are not stored in conversion APIs, History, or LocalStorage.