The developer tools you reach for every day, all in one place.

Converters, formatters, hashes, validators, and the small utilities you keep reopening stay together instead of getting lost across tabs.

GitHub

/ Tools

/ Tool Finder
109 tools
/ Punycode Encoder/Decoder
/ Selected Tool

Punycode Encoder/Decoder

Encode and decode Punycode for internationalized domain names

01

What is Punycode?

Punycode is a way to represent Unicode characters using only the limited ASCII subset (letters, digits, and hyphens) permitted in domain names. It allows internationalized domain names (IDNs) containing non-ASCII charac…

02

How does it work?

The ACE Prefix Punycode-encoded labels are identified by the ASCII Compatible Encoding (ACE) prefix "xn--". For example, the German city "Munchen" becomes "xn--mnchen-3ya" in Punycode. Encoding Process ASCII characters…

03

Sample Cases

Covers German domain, Chinese domain, and Japanese domain so you can compare common inputs and outputs quickly.

/ Code

/ Integration

Source code from the selected tool, shown here alongside the live version on the right.

/ Source Code
TypeScript
typescript
// Punycode encoding/decoding for internationalized domains

function toASCII(domain: string): string {
  // Convert each label of the domain
  return domain.split('.').map(label => {
    // If already ASCII, return as-is
    if (/^[\x00-\x7F]*$/.test(label)) {
      return label;
    }
    // Otherwise encode with xn-- prefix
Buidl Now icon

Keep every utility in one place and stay inside the build flow.

Pick a tool, finish the check, copy what you need, and get back to the actual product work.

Developer tools for builders who ship fast.© 2026 Buidl Now. All rights reserved.