decodeurl.com

Article

BLOG

How Does URL Encoding Handle Unicode, Emoji, and Accents?

Why non-ASCII text becomes multiple percent codes and how UTF-8 keeps international characters safe in URLs.

URL encoding handles Unicode by converting characters to UTF-8 bytes, then percent-encoding each byte that is not safe in a URL. That is why one visible character can become several %XX groups.

Try a word with accents, Bulgarian text, or emoji in the URL Encode tool and then round-trip it through the URL Decode tool.

How does URL encoding handle Unicode?

URL encoding handles Unicode by first representing the character as UTF-8 bytes. Each byte is then written as a percent sign and two hexadecimal digits. This lets URLs carry international text using a safe ASCII-only representation.

Why does one emoji become so many percent codes?

One emoji becomes many percent codes because emoji are represented by multiple UTF-8 bytes. A rocket emoji, for example, is four bytes in UTF-8, so it appears as four percent-encoded groups in a URL component.

Why does é become %C3%A9?

é becomes %C3%A9 because its UTF-8 representation uses two bytes: C3 and A9. URL encoding works on bytes rather than abstract characters, so each byte receives its own percent code.

Can URLs contain non-ASCII characters directly?

Modern browsers may display non-ASCII characters directly for readability, but the transmitted URL is still normalized to a safe encoded form where needed. Encoding remains important when building links for APIs, redirects, emails, and systems that expect ASCII-safe URLs.

Are international domain names URL encoded?

International domain names are usually converted with IDNA or Punycode, not ordinary percent-encoding. The path, query, and fragment can use UTF-8 percent-encoding, but the host name follows separate domain-name rules.

What happens if the wrong character encoding is used?

If the wrong character encoding is used, decoding can produce mojibake, replacement characters, or errors. Modern URL handling should assume UTF-8 unless a legacy system explicitly documents a different encoding.

How do I test Unicode URL encoding?

Paste the text into the URL Encode tool and then paste the result into the URL Decode tool. A correct round trip returns the original text exactly, including accents, Bulgarian letters, and emoji.

← Back to the blog