All tools
SEO Tools
Ads Tools
Link Tools
Social Tools
Text & Content Tools
Utilities
Finance Calculators
Thai Business
Image & Media Tools
Numerology & Fortune
Home & Living
Education
Health

URL Encoder / Decoder + Base64 + IDN Converter

Encode and decode URLs, convert text to and from Base64, and translate Thai domain names to Punycode — all in one place. Built for developers and marketers who work with Thai text, where naive tools mangle UTF-8 and leave broken characters. Everything runs in your browser, so your data never leaves your device. Free, no sign-up.

Mode

Example:

The result will appear here

How to use

  1. Pick a tab: URL, Base64 or Domain (IDN).
  2. Paste your text, URL or domain into the input box.
  3. Choose the mode — for URLs, decide between encodeURIComponent, encodeURI or decode (each has a live Thai example).
  4. The result appears instantly on the right; click Copy to grab it.
  5. Use Swap to move the result back into the input and reverse the conversion.

Features

  • URL encoding two ways — encodeURIComponent for single values and encodeURI for whole URLs, explained with live Thai examples
  • Decoding catches malformed percent-sequences instead of silently returning garbled text
  • UTF-8-safe Base64 that never breaks on Thai or emoji (unlike plain btoa)
  • URL-safe Base64 toggle (- and _ instead of + and /) for tokens and filenames
  • Thai domain to Punycode conversion in both directions, with a phishing look-alike warning for mixed scripts
  • 100% in-browser — your text is never uploaded

Frequently asked questions

What is the difference between encodeURIComponent and encodeURI?
encodeURIComponent encodes everything, including / ? & = and #, so it is right for a single query value or path segment. encodeURI leaves those structural characters intact, so it is for encoding a complete URL. If you encode a whole URL with encodeURIComponent, the slashes and colons get escaped and the link breaks.
Why does Base64 here handle Thai correctly when other tools do not?
The browser's built-in btoa only accepts Latin-1 bytes and throws on Thai characters. This tool first encodes your text to UTF-8 bytes with TextEncoder, then applies Base64, so Thai, emoji and any Unicode survive intact. Decoding reverses that path with strict UTF-8 validation.
What is Punycode and why would I need it?
Punycode is an ASCII representation of a domain that contains non-Latin characters, like ตัวอย่าง.ไทย. Browsers and DNS use it internally (as xn--... labels). You need it when a system only accepts ASCII domains, or to check what a Thai domain really resolves to.
What does the mixed-script warning mean?
It flags a domain whose single label combines characters from different writing systems — for example Latin letters mixed with Cyrillic or Thai. Attackers use look-alike characters to create fake domains that resemble trusted brands, so treat mixed-script domains with caution.
Is my input sent to a server?
No. All encoding, decoding and Punycode conversion happen in your browser with JavaScript. Nothing you type is uploaded, so it is safe for sensitive URLs and tokens.