Hex stream ⇄ readable text

🔡 Hex ⇄ Text

Paste a hex stream and read it back as text: the tool sniffs the encoding (UTF-16 BE/LE, UTF-8, Latin-1) from the BOM and the byte pattern, ignores spaces and 0x \u U+ prefixes, and shows every character next to the bytes it came from — plus the reverse direction, text to hex in whichever encoding you pick.

Auto mode reads a BOM first (FEFF / FFFE / EFBBBF), then looks at where the 00 bytes fall: 00 in the first slot of each pair means UTF-16 BE, in the second means UTF-16 LE. If neither pattern fits, the bytes are tested against the UTF-8 rules and fall back to Latin-1. A UTF-16 stream read with the wrong endianness shows up as lone surrogates or CJK gibberish — flip BE/LE and it snaps back.