Text to Hex Converter
This converter turns characters into two-digit UTF-8 or ASCII bytes. If you have ASCII decimal codes rather than characters, use Hex to ASCII; for a plain number, use Decimal to Hex.
Going the other way? Convert hex back to text →
How do you convert text to hex?
Text to hex conversion replaces every character with the hexadecimal form of its ASCII or UTF-8 code, so a two-letter word becomes two groups of hexadecimal digits.
Text to hex writes each byte of the text as two hex digits: "Hi" is 48 69. Find each character's UTF-8 code (H is 72), convert it to base 16, and separate the bytes with spaces; é is C3 A9.
- Take the first character and look up its code. H is 72.
- Convert that code to hexadecimal by repeated division or from the table. 72 is 48.
- Pad the result on the left with zeros until it is 2 digits: 48.
- Repeat for every character and separate the codes with a single space: Hi = 48 69.
Text to hex writes each character code in base 16, a compact form of the bits a computer stores; binary code explains how a letter becomes those bits.
Text to Hexadecimal Conversion Table
Every letter, digit and the space, with its code in all four bases. Find the character in the first column and read across: the Dec column is the code the method uses, and the Hex column is what this converter writes — 2 digits per character, zero-padded on the left. That column uses the digit set 0–9, A–F (A=10 … F=15; case-insensitive) and nothing else, each place worth 16ⁿ, and a value marked with the 0x prefix means the same thing. 0b marks binary, 0o octal, 0x hexadecimal; a leading # marks a hex colour. Hexadecimal is not case-sensitive (FF = ff); iToolHub writes hex digits in uppercase. This page writes one two-digit uppercase hex byte per character, single space between bytes. This page shows the rows you need; ASCII code chart (decimal, hex, octal, binary) carries all 128.
| Char | Dec | Hex | Oct | Bin |
|---|---|---|---|---|
| A | 65 | 41 | 101 | 01000001 |
| B | 66 | 42 | 102 | 01000010 |
| C | 67 | 43 | 103 | 01000011 |
| D | 68 | 44 | 104 | 01000100 |
| E | 69 | 45 | 105 | 01000101 |
| F | 70 | 46 | 106 | 01000110 |
| G | 71 | 47 | 107 | 01000111 |
| H | 72 | 48 | 110 | 01001000 |
| I | 73 | 49 | 111 | 01001001 |
| J | 74 | 4A | 112 | 01001010 |
| K | 75 | 4B | 113 | 01001011 |
| L | 76 | 4C | 114 | 01001100 |
| M | 77 | 4D | 115 | 01001101 |
| N | 78 | 4E | 116 | 01001110 |
| O | 79 | 4F | 117 | 01001111 |
| P | 80 | 50 | 120 | 01010000 |
| Q | 81 | 51 | 121 | 01010001 |
| R | 82 | 52 | 122 | 01010010 |
| S | 83 | 53 | 123 | 01010011 |
| T | 84 | 54 | 124 | 01010100 |
| U | 85 | 55 | 125 | 01010101 |
| V | 86 | 56 | 126 | 01010110 |
| W | 87 | 57 | 127 | 01010111 |
| X | 88 | 58 | 130 | 01011000 |
| Y | 89 | 59 | 131 | 01011001 |
| Z | 90 | 5A | 132 | 01011010 |
| a | 97 | 61 | 141 | 01100001 |
| b | 98 | 62 | 142 | 01100010 |
| c | 99 | 63 | 143 | 01100011 |
| d | 100 | 64 | 144 | 01100100 |
| e | 101 | 65 | 145 | 01100101 |
| f | 102 | 66 | 146 | 01100110 |
| g | 103 | 67 | 147 | 01100111 |
| h | 104 | 68 | 150 | 01101000 |
| i | 105 | 69 | 151 | 01101001 |
| j | 106 | 6A | 152 | 01101010 |
| k | 107 | 6B | 153 | 01101011 |
| l | 108 | 6C | 154 | 01101100 |
| m | 109 | 6D | 155 | 01101101 |
| n | 110 | 6E | 156 | 01101110 |
| o | 111 | 6F | 157 | 01101111 |
| p | 112 | 70 | 160 | 01110000 |
| q | 113 | 71 | 161 | 01110001 |
| r | 114 | 72 | 162 | 01110010 |
| s | 115 | 73 | 163 | 01110011 |
| t | 116 | 74 | 164 | 01110100 |
| u | 117 | 75 | 165 | 01110101 |
| v | 118 | 76 | 166 | 01110110 |
| w | 119 | 77 | 167 | 01110111 |
| x | 120 | 78 | 170 | 01111000 |
| y | 121 | 79 | 171 | 01111001 |
| z | 122 | 7A | 172 | 01111010 |
| 0 | 48 | 30 | 060 | 00110000 |
| 1 | 49 | 31 | 061 | 00110001 |
| 2 | 50 | 32 | 062 | 00110010 |
| 3 | 51 | 33 | 063 | 00110011 |
| 4 | 52 | 34 | 064 | 00110100 |
| 5 | 53 | 35 | 065 | 00110101 |
| 6 | 54 | 36 | 066 | 00110110 |
| 7 | 55 | 37 | 067 | 00110111 |
| 8 | 56 | 38 | 070 | 00111000 |
| 9 | 57 | 39 | 071 | 00111001 |
| (space) | 32 | 20 | 040 | 00100000 |
The base this page writes, defined by the digits it uses, how a value is marked, and what each position is worth.
| Base | Radix | Digits | Prefix | Place worth | Typical range |
|---|---|---|---|---|---|
| Hexadecimal | 16 | 0–9, A–F (A=10 … F=15; case-insensitive) | 0x | 16ⁿ | 2 digits cover a byte (00–FF); 6 digits = RGB colour; 8 digits = 32-bit word |
Worked Example: "Hi" to Hexadecimal
One character at a time, with the working written out. This is the same grid the converter shows when you turn on "show steps".
Result: Hi = 48 69
Take the first character, H. Its code is 72. Written in hexadecimal that is 48, which is 2 digits only once a leading zero is added: 48. The place values across the top of the grid show why — 72, and every column with a 1 in it contributes its own weight.
Every remaining character repeats the same three moves: find the code, write it in hexadecimal, pad it to 2 digits. i is 105, so 69. The groups then join in the order the characters were typed, separated by a single space.
To check a result, count the groups: an ASCII message has exactly one per character, spaces included. Then find any one group's row in the table above; its Dec column must match the code in the grid. A group one digit short means a leading zero was dropped, and one group too few means a space was trimmed from the input. An accented letter or an emoji is the one honest exception to the count: it takes two to four groups, and the converter's working shows them on one row under the character's code point.
Check it in reverse
The value goes back the way it came: 48 is code 72, which is H; 69 is code 105, which is i. Nothing is lost on the return trip, because every character keeps its own group and the groups keep their order. A decoder needs no extra information from the encoder — the fixed width tells it where each group ends, and the table tells it what each code means. To verify the result by hand, read the same hex bytes back as text and compare it with what you started from.
Worked examples: text to hex
Each example gives the value first, then the working. Click a value to load it in the converter.
How do you write "I love you" in hex?
"I love you" in text is 49 20 6C 6F 76 65 20 79 6F 75 in hex.
Method: one two-digit group per character, spaces included (20).
How do you write "How are you" in hex?
"How are you" in text is 48 6F 77 20 61 72 65 20 79 6F 75 in hex.
Method: one two-digit group per character, spaces included (20).
What is "Hi" in hex?
"Hi" in text is 48 69 in hex.
Method: H is code 72 = 48; i is code 105 = 69.
What is "hello" in hex?
"hello" in text is 68 65 6C 6C 6F in hex.
Method: one two-digit group per character, spaces included (20).
What is "Ana" in hex?
"Ana" in text is 41 6E 61 in hex.
Method: A is code 65 = 41; n is code 110 = 6E; a is code 97 = 61.
What is the letter a in hex?
a in text is 61 in hex.
Method: a is code 97.
What is the letter A in hex?
A in text is 41 in hex.
Method: A is code 65.
What is the letter e in hex?
e in text is 65 in hex.
Method: e is code 101.
What is the letter b in hex?
b in text is 62 in hex.
Method: b is code 98.
What is the letter d in hex?
d in text is 64 in hex.
Method: d is code 100.
What is the letter f in hex?
f in text is 66 in hex.
Method: f is code 102.
What is the letter t in hex?
t in text is 74 in hex.
Method: t is code 116.
Common phrases people convert: load one of these into the decoder
Every example above reverses exactly — turn those hex bytes back into a string.
What Changes the Hex Output?
Spaces and line breaks
A space is a character like any other: code 32, or 20. A trailing space converts too, which is the usual reason an output runs one group longer than expected.
Characters outside ASCII
UTF-8 encodes each character in 1 to 4 bytes. Characters 0–127 use one byte identical to ASCII, so ASCII text is valid UTF-8. é is U+00E9 and encodes as C3 A9 (2 bytes); € is U+20AC and encodes as E2 82 AC (3 bytes); 😀 is U+1F600 and encodes as F0 9F 98 80 (4 bytes). Written the way this page writes them, those are é = C3 A9, € = E2 82 AC and 😀 = F0 9F 98 80. The reason is set out in how ASCII, Unicode and UTF-8 differ.
Width and padding
ASCII defines 128 characters, codes 0–127, using 7 bits; in practice each code is stored in one 8-bit byte with a leading 0. That is why A is 41 here, not 41. Uppercase and lowercase differ by 32, which is bit 5, so a is 61.
Separator choice
The space between groups is a display choice; the bytes do not change. iToolHub's text-to-binary and text-to-hex converters write one 8-bit byte per character, separated by spaces. Pick no separator when the output feeds another program, a comma for a spreadsheet, or one group per line for a list.
Text to Hex in Code
The same rule in one line. Both take a string and return the hexadecimal codes, space-separated.
Python: ' '.join(format(b, '02X') for b in s.encode('utf-8')) JavaScript: [...new TextEncoder().encode(s)].map(b => b.toString(16).toUpperCase().padStart(2, '0')).join(' ') Common Mistakes
- Dropping the leading zero, so A reads 41 instead of 41. The output then splits into the wrong groups.
- Mixing widths inside one string. One short group shifts every character after it; pasted here, the converter names the group that is out of step.
- Pasting codes instead of characters — that is a different conversion, and it lives on hex byte to ASCII code lookup.
- Forgetting that the space between words is its own group, 20. The counts then disagree.
Frequently Asked Questions
Why does é become two hex bytes (C3 A9)?
Because é is outside ASCII and UTF-8 gives it more than one byte. UTF-8 encodes each character in 1 to 4 bytes. Characters 0–127 use one byte identical to ASCII, so ASCII text is valid UTF-8. Each byte is eight bits underneath — see binary code explained from the alphabet up.
Should hex be written in uppercase or lowercase?
Uppercase, on this site. Hex uses the digit set 0–9, A–F, each place worth 16ⁿ. 0b marks binary, 0o octal, 0x hexadecimal; a leading # marks a hex colour. Hexadecimal is not case-sensitive (FF = ff); iToolHub writes hex digits in uppercase.
How do you convert text to hex in Python?
Encode the string to bytes, then format each byte as two uppercase hex digits. The one-liner under Text to Hex in Code does that, and iToolHub's text-to-binary and text-to-hex converters write one 8-bit byte per character, separated by spaces.
Every value here reverses: the same bytes convert straight back in the hex byte to text direction.
Related Conversions
The rest of the family sits on the full converter grid.