Updated · Built and checked by the PlinzoTools team, formulas tested against published sources
Convert text to hexadecimal, or hex back to text.
48 65 6c 6c 6fThis tool converts text into hexadecimal (base 16) -- a compact, common way to represent character codes and byte values in programming, debugging, and data inspection -- and converts hex back into readable text.
Choose a direction, then paste text (to encode) or space-separated hex byte pairs (to decode). The result updates as you type.
Each character's Unicode code point converts to a 2+ digit hexadecimal value via codePointAt(0).toString(16), padded to at least 2 digits.
The text "Hi" converts to 48 69 in hex (72 and 105 in decimal).
For a binary representation instead, see the Text to Binary Converter. To look up any character's exact code point, use the Unicode Code Point Converter.
Encode the word "Cat". C is code point 67, which is 43 in hex, a is 97, which is 61, and t is 116, which is 74. The output is 43 61 74. Decoding 43 61 74 returns Cat. Look at a code point below 16, such as a line feed at 10: it converts to a, which the tool pads to 0a so that every value has at least two digits. Larger characters produce longer values. The euro sign, code point 8364, is 20ac, which has four digits, and it appears as 20ac in the output, not as separate bytes.
Encode: hex value = code point in base 16, at least two digits. Decode: character = the code point given by reading each space-separated group as base 16.
This is the most important point to understand. For plain English text the hex values match the ASCII byte values you would see in a hex dump. For characters beyond ASCII the tool shows the single code point value, whereas a file stored as UTF-8 would use two, three, or four separate bytes for the same character. The euro sign is stored in UTF-8 as three bytes, but this tool shows the one value 20ac. If you are comparing against a hex dump from a file or network capture, expect differences for non-ASCII characters, and use a byte-level tool for an exact match.
Developers use hex values to write characters in source code escapes, check how a string is stored, fill in color or data fields, and compare with documentation that lists hex codes. Students use it to connect the idea of text to the hexadecimal notation found in memory dumps and networking books. Puzzle makers use it to hide a short phrase as a list of values. Since each hex digit maps to four binary digits, you can also convert a result to binary by hand, which is a good exercise for learning number bases.
Hex letters are case-insensitive for decoding, so 4A and 4a mean the same thing. When sharing results, consistency matters more than case, so pick one style and keep it throughout a document.
Hex is far more compact -- one hex digit represents exactly 4 binary bits, so a byte needs only 2 hex digits instead of 8 binary digits, making hex dumps much easier to read.
Yes -- any Unicode character converts based on its actual code point, though multi-byte characters (emoji, many non-Latin scripts) will show a longer hex value.
Hex shows each character's raw code point value directly; Base64 (see the Base64 Encoder/Decoder) re-encodes the underlying bytes into a different, more compact character set entirely.
The tool pads each value to at least two digits, so a line feed appears as 0a instead of a.
For plain ASCII text, yes. For other characters, a UTF-8 file stores multiple bytes, but this tool shows a single code point value.
Safest is to remove the prefix. The decoder expects plain hexadecimal values separated by spaces, and extra punctuation or formatting can cause errors.
Reference: MDN Web Docs