Unicode Domain ↔ Punycode Converter (IDN / xn–)
Convert Unicode domains, internationalized domain names (IDN), and emoji domains into Punycode (xn-- format), or decode xn-- domains back into readable Unicode domains.
Many DNS systems, hosting providers, and server environments require domains in Punycode format. This tool performs accurate conversions based on the RFC3492 standard.
Paste multiple domains at once for bulk conversion. All processing happens directly in your browser, and no domain data is sent to the server.
If you also need to safely encode URL query strings or parameter values after converting domains, try the URL Encoding & Decoding Tool.
When Unicode & Punycode Conversion Is Needed
Punycode conversion is often required when configuring web servers, registering SSL certificates, or managing DNS records.
Web servers such as Apache and Nginx commonly use Punycode format internally for Unicode domains.
System-level tasks such as programming, HTTP headers, API requests, and log analysis also frequently rely on xn-- encoded domains.
How Unicode Domains and Emoji Domains Are Encoded
Unicode domains and emoji domains use different encoding processes internally. Domain labels containing Unicode characters are converted into ASCII-compatible strings and combined with the xn-- prefix.
Emoji domains are also encoded using Unicode-based conversion and stored as ASCII strings in Punycode format.
Both methods follow the RFC3492 standard for internationalized domain names.
How Punycode Works & What the xn– Prefix Means
Domain labels converted to Punycode always begin with the xn-- prefix.
This prefix tells DNS systems that the label is an internationalized domain name encoded in Punycode.
The characters following the prefix represent the Unicode domain encoded into ASCII-compatible text.
Each domain label is encoded independently. For example, in a domain like unicode.domain.com, each label is processed separately when required.
Labels containing only standard ASCII characters such as com or net remain unchanged.
Convert Multiple Domains at Once
There are many situations where multiple internationalized domains need to be converted at the same time. This tool supports bulk conversion by processing domains line by line in a single input.
The converted results can be copied all at once and pasted directly into server configuration files, spreadsheets, or deployment documents.
It is especially useful for domain migrations, server transfers, and multilingual DNS configuration tasks.
How Browsers Handle Unicode Domains
When a user enters a Unicode domain into the browser address bar, the browser automatically converts it into Punycode (xn-- format) before sending the DNS request.
After receiving the DNS response, the browser decodes the Punycode back into a readable Unicode domain and displays it in the address bar. This process happens automatically behind the scenes.
However, server configuration files, SSL certificate registration, and application code often require developers to work directly with the encoded format.
You can use this tool to manually convert Unicode domains into Punycode or verify encoded domain results.
Frequently Asked Questions
Punycode is an international encoding standard that converts Unicode-based domain names containing characters such as Korean, Japanese, Chinese, or emojis into ASCII-compatible strings using only letters, numbers, and hyphens.
It is defined in RFC3492, and all encoded domains begin with the xn-- prefix.
Thanks to this format, internationalized domain names (IDN) can work correctly even on DNS servers and web servers that only support ASCII characters.
Select “Unicode Domain → Punycode” from the top tab menu, enter one domain per line into the input box, then click the Convert button.
If multiple domains are entered at once, they will be processed in bulk. The converted results appear in the result area below, and you can copy everything using the Copy to Clipboard button.
Yes. Punycode is an international standard capable of converting not only multilingual characters but also emojis into ASCII-compatible strings.
However, some domain registrars may not officially support emoji domains. It is recommended to check compatibility before registering an emoji domain.
The conversion itself works without issues.
Most major programming languages provide built-in libraries or APIs for handling Punycode conversion.
- Java: Use the
toASCII()andtoUnicode()methods from thejava.net.IDNclass. - Python: Use
.encode('idna')or theencodings.idnamodule. - JavaScript: The
URLAPI automatically handles Punycode conversion, and thepunycodepackage can also be used separately.
This tool can be used to preview or validate conversion results before applying them in production code.
The following situations may produce unexpected conversion results, so careful verification is recommended.
- Label-based conversion: Punycode converts each domain label separately rather than converting the entire domain as one string. In
unicode.domain.com, thecomlabel remains unchanged. - Case normalization: It is recommended to normalize domains to lowercase before processing. Lowercase domains are generally preferred.
- Leading and trailing spaces: Extra spaces in the input may cause conversion errors. Enabling the tool’s “Trim Whitespace” option will automatically remove them.
Open the “Punycode → Unicode Domain” tab and enter the converted Punycode value again to restore the original Unicode domain.
If the restored result matches the original domain you entered, the conversion was completed correctly. It is a good idea to verify the result before updating DNS settings or registering a domain.