Skip to content

Character encoding converter

Read the same bytes as UTF-8, UTF-16, UTF-32, US-ASCII, Latin-1, Windows-1252 or EBCDIC CP037/CP500 side by side, or encode text into any of them. A per-code-point inspector shows exactly what each byte or character maps to. All processing happens in your browser.

Direction

Hex bytes in, text out under each encoding.

Bytes (hex)

Paste hex, or load a file to read its raw bytes, up to 10 MB.

Show these encodings

Unicode
Latin & ASCII
EBCDIC

Rendered under each encoding

Enter some input above to see it decoded.

Per-code-point inspector

# Char Code point Dec Bytes

Nothing to inspect yet.

Notes

Why not just use my browser to decode Latin-1 or ASCII?
Because the browser will not. The WHATWG encoding standard that TextDecoder implements folds "us-ascii" and "iso-8859-1" into Windows-1252, so a TextDecoder("iso-8859-1") quietly returns Windows-1252 for the 0x80–0x9F range. This tool uses explicit 256-entry tables for the single-byte families, so Latin-1 is Latin-1 and ASCII rejects the high half instead of guessing.
What is EBCDIC and why CP037 and CP500?
EBCDIC is IBM's mainframe character set, still common in card scheme host links and older acquirer systems. There is no TextDecoder for it, so the bytes are mapped through published code-page tables. CP037 is the US/Canada page; CP500 is the international page. They are identical except for seven bytes — the brackets, the exclamation mark, the caret, the broken bar and a couple of others — which is exactly the kind of difference that turns a field into mojibake between two hosts.
What happens to bytes or characters an encoding cannot represent?
Nothing is hidden. On decode, a byte with no mapping becomes the replacement character U+FFFD and a note says how many. On encode, a character the target cannot hold becomes "?" and a note says how many. The output is always shown so you can see where it broke, rather than the tool refusing the input.
Does anything leave my browser?
No. There is no backend and no analytics on this page. Every conversion happens in the tab and is gone when you close it.

These are debugging aids, not certified reference implementations. If a tool disagrees with your specification, trust the specification.