Protocol or library debugging
Inspect the raw punycode payload a library or test fixture expects before hostname prefixes are applied.
Documentation
Encode bare text as raw punycode or decode bare punycode lines back to Unicode without hostname parsing or xn-- prefixes.
Overview
Use Raw Punycode Encode / Decode Utility when you need the bare RFC 3492 payload itself, not an IDN hostname label with the xn-- prefix.
Inspect the raw punycode payload a library or test fixture expects before hostname prefixes are applied.
Convert multiple bare text values or raw punycode strings in one request while preserving line order.
Separate raw punycode payload work from hostname-focused IDN work so you do not mix bare values and xn-- labels.
Supported inputs
Walk through it
Workflow
Use this flow when you need the bare punycode payload for one or more text values.
Workflow
Use this flow when you already have bare punycode strings and want readable Unicode output without hostname prefixes.
What you get
A copy-ready multiline output preserves the original line order and keeps failed lines in place.
Counts show how many lines succeeded, failed, or were skipped because they were blank.
Each submitted line shows its converted output or a clear error message when decode input is invalid.
Avoid these mistakes
This tool works on raw punycode only. Use the hostname-focused Punycode Toolkit when you need `xn--` labels or domains.
A dotted hostname is not the same thing as a bare punycode payload. This tool treats every non-empty line as one exact raw value.
Invalid lines stay in place in the combined output so batch order remains stable.
Glossary
This section translates the most technical labels on the page into plain language so you can interpret the output without opening another tab.
Raw punycode is the RFC 3492 payload without the xn-- prefix that hostname labels use in IDN form.
An IDN label is a hostname segment that usually adds the xn-- prefix in front of raw punycode for DNS-safe ASCII form.
Batch output is the combined multiline result that keeps each input line in its original position.
A skipped line is a blank input line that is preserved but not converted.