What this does
Converts text to the hexadecimal values of its bytes and back. "Hello" becomes48 65 6c 6c 6f. The bytes depend on the character encoding, so you can pick UTF-8 (the web default), UTF-16 little or big endian, ASCII or Latin-1.
Input and output formats
When decoding, the parser accepts compact hex (48656c6c6f), space, comma, colon or dash separated bytes, 0x48 prefixes and \x48 escapes, in upper or lower case. An odd digit count or a non-hex character is reported with its position. When encoding you can choose the separator, uppercase digits and a 0x prefix to get output ready to paste into C, Go, Rust or JavaScript byte arrays.
Encodings and errors
"é" is c3 a9 in UTF-8, e9 00 in UTF-16 LE and e9 in Latin-1. ASCII and Latin-1 cannot represent every character: the tool names the first character that does not fit instead of substituting a question mark. Decoding reports invalid UTF-8 sequences and unpaired UTF-16 surrogates with their byte offset. A leading byte order mark is stripped when decoding and can be added when encoding.
Example
Hello, 世界! 🚀 in UTF-8 is48 65 6c 6c 6f 2c 20 e4 b8 96 e7 95 8c 21 20 f0 9f 9a 80, nineteen bytes for twelve characters.
Privacy
The conversion happens in your browser. Nothing is uploaded or stored.