Plain ASCII
Input
Hi
Result
4869
Capital H is 0x48 and lowercase i is 0x69, matching the ASCII table exactly.
Encode text into a hex string for transport, debugging, and inspection.
Start here Paste the exact text, including any trailing spaces or newlines you want to inspect.
456e636f6465207468697320646576656c6f706572206e6f74652e
Understand the format
Hexadecimal shows the exact bytes behind a piece of text, which is the only reliable way to see invisible characters and encoding differences.
Text is converted to bytes with UTF-8, and each byte is printed as exactly two hexadecimal digits, from 00 to ff. ASCII characters occupy one byte each, so "Hi" becomes 4869. Characters outside ASCII take two to four bytes: the euro sign is e2 82 ac, and most emoji are four bytes.
Because the mapping is fixed at two digits per byte, the length of the hex string is always double the byte count. That gives you a quick integrity check: an odd number of hex characters means the value was truncated somewhere.
Two strings that look identical on screen can differ in bytes. A non-breaking space (c2 a0) renders exactly like an ordinary space (20). A carriage return (0d) is invisible until it breaks a comparison. A zero-width space contributes bytes while occupying no visual width at all.
This is why hex output is the standard tool for diagnosing "but they are the same string" bugs in signature verification, checksum mismatches, and failing equality checks. The bytes cannot hide what the rendering does.
Step by step
Conversion uses the browser TextEncoder in the page, so the text you inspect is never uploaded.
Worked examples
Input
Hi
Result
4869
Capital H is 0x48 and lowercase i is 0x69, matching the ASCII table exactly.
Input
OK followed by a line break
Result
4f4b0a
The 0a is a line feed. This single byte is the most common reason a copied value fails to match a stored one.
Reference
| Bytes | Character | Note |
|---|---|---|
| 20 | Space | The ordinary ASCII space. |
| 09 | Tab | Often introduced by copying from a table. |
| 0a | Line feed | The Unix line ending. |
| 0d 0a | Carriage return and line feed | The Windows line ending, and the cause of many diff and hash mismatches. |
| c2 a0 | Non-breaking space | Looks like a space, compares as a different character. Common when copying from web pages. |
| ef bb bf | Byte-order mark | An invisible prefix that breaks strict JSON and CSV parsers. |
| e2 82 ac | Euro sign | A reminder that one character is not always one byte. |
Practical Guide
Troubleshooting
FAQ
Every byte is printed as two digits, padded with a leading zero when needed. An odd length means characters were lost.
No. It is a printable representation of bytes and is trivially reversible, exactly like Base64 but 100% larger instead of 33%.
UTF-8 is a variable-length encoding. ASCII takes one byte, most European and Middle Eastern scripts two, most CJK characters three, and emoji four.
Either is valid and they represent the same bytes. This tool emits lowercase, which is the more common convention in HTTP headers and Unix tooling.
Use a tool that reads the file bytes directly, such as xxd or a hex editor. Pasting binary content as text corrupts it before the conversion starts.
Go deeper