🌐 Punycode Encoder/Decoder

🔧
📝
💡 Examples: münchen.de, 例え.テスト, москва.рф, café.com 💡 Examples: xn--mnchen-3ya.de, xn--r8jz45g.xn--zckzah, xn--80adxhks.xn--p1ai
⚡
📤
{{ outputText }}
🔍
Label {{ index + 1 }}:
Original: {{ part.original }}
PunycodeUnicode: {{ part.converted }}
Needs Encoding: {{ part.needsEncoding ?'Yes' :'No' }}
🔤
{{ char.char }} {{ char.name }}
U+{{ char.codePoint.toString(16).toUpperCase().padStart(4,'0') }}
⚠️ {{ error }}
💡
To Encode: Enter Unicode text or domain names with international characters
To Decode: Enter Punycode text (usually starts with"xn--")
Domain Examples: münchen.de, 中国.cn, россия.рф, ελλάδα.gr
Text Examples: Hello 世界, Café, Naïve, Français

ℹ️ About Punycode Encoder/Decoder

Punycode is the Bootstring-based encoding used by internationalized domain names to represent Unicode labels with the ASCII characters accepted by DNS. It is specified in RFC 3492, while the IDNA 2008 domain-name framework is defined by RFC 5890 and RFC 5891.

Use this Punycode encoder and decoder when you need to inspect an IDN, convert a Unicode hostname to its ASCII-compatible form, or decode an xn-- label copied from a browser, certificate, DNS record, WHOIS result, or email configuration.

  • Encode Unicode domains: convert labels such as münchen.de or 例え.テスト into DNS-safe ASCII.
  • Decode ACE labels: turn xn--mnchen-3ya.de back into the readable Unicode form.
  • Review IDN records: compare domain names across DNS, TLS certificates, redirects, and application allowlists.
  • Debug email and URL handling: check the domain portion used by internationalized email addresses and links.

Punycode works label by label. A non-ASCII label is encoded and prefixed with xn--, so münchen becomes xn--mnchen-3ya; each dot-separated label is processed independently. IDNA also applies rules for valid code points, bidirectional text, hyphen placement, and label length. The Unicode mapping behavior used by browsers is also influenced by the Unicode IDNA compatibility processing and security guidance such as Unicode Technical Standard #39.

  • münchen.de encodes to xn--mnchen-3ya.de.
  • 例え.テスト encodes to xn--r8jz45g.xn--zckzah.
  • москва.рф encodes to xn--80adxhks.xn--p1ai.

Security note: decoding Punycode does not prove that a domain is safe or registered. Internationalized names can contain visually similar characters from different scripts, so treat decoded domains as display data until you verify the registrant, DNS records, certificate names, and the exact Unicode code points.

API Usage Example:

POST /api/tools/encoding-decoding/punycode
Content-Type: application/json

{
    "text": "münchen.de",
    "operation": "encode"
}
Ready