Paste character codes in decimal, hex, binary or octal and get the text back, with any bad code flagged by position.
Your files are processed in your browser, on your own device. Nothing is uploaded to a server.
Paste a list of character codes and this tool turns them back into readable text, in decimal, hex, binary or octal. It runs fully in your browser, so the codes never leave your device, and there is no sign-up, no storage and no limit on list length.
The starting point is simple. Every code is read as a byte value from 0 to 255, and the bytes are then decoded as UTF-8 text. Feed it the decimal codes 72 101 108 108 111 and out comes the word Hello, because 72 is the code for capital H and the rest spell ello in lowercase.
The separator setting deserves a moment, because it decides how the tool finds the edges of each code. Spaces, commas and line breaks all draw the edges plainly. Fixed width input has no edges at all, so the tool cuts the stream by count instead. Hex codes are cut every 2 characters, binary every 8, and octal every 3.
Decimal is the exception, and the page will tell you so if you pick no separator with decimal selected. A decimal code can be one, two or three characters long, so a stream like 72101108 has no single correct way to be cut. The tool refuses to guess and asks for a separator instead.
Prefixes are a common paste problem. Code copied from a program often arrives as 0x48 or 0b01001000, where the front part only announces the base. Prefix stripping removes those markers so the codes themselves can be read, rather than failing on the first character.
Some codes stand for characters you cannot see. The codes 0 to 31, and 127, are control codes covering things like Tab, which is 9, and Line Feed, which is 10. Printing them would give you invisible output, so the result reports them by name and tells you where they sit.
Nothing gets skipped quietly. A code above 255 cannot be a byte, so the result flags it by its position in your list. A token that does not parse in the base you chose is flagged the same way. You always learn which entry failed, instead of getting text with a mystery gap in it.
UTF-8 is the decoding used, and that choice has a real limit worth knowing. Text stored under an older single-byte encoding, common on older Windows systems, uses different codes for accented letters. Bytes from such a source may not decode as valid UTF-8 here, and when that happens the result says so rather than printing scrambled characters.
Codes are treated as bytes, not as abstract characters. For plain English text the two ideas agree, which is why the Hello example works. For characters outside the basic set, the byte view is the honest one, since it is how the text is actually stored and sent.
Long pasted streams are cut, checked and decoded in one pass on your own machine, so a list with thousands of codes is handled the same way as a list with five.
It spells Hello. Those are decimal codes, and 72 stands for capital H, 101 for e, 108 for l, 108 for l again and 111 for o. Paste them in decimal mode with spaces as the separator and the word appears.
Decimal codes vary in length, from one digit up to three, so an unbroken decimal stream cannot be split reliably. Hex codes in byte work are always two characters, binary always eight and octal always three, so the tool can cut those by count alone.
Yes. Turn on prefix stripping and the tool removes the 0x, 0b or 0o markers before reading the codes. Those prefixes only label the base, and code copied straight from a program listing often carries them.
The result flags that code by its position in your list and stops rather than guessing. A byte only runs from 0 to 255, so a bigger value means the input is not byte codes, or one entry has been mistyped.
The usual reason is a different encoding. If the codes came from an older single-byte encoding, accented characters use codes that UTF-8 reads in a different way. Plain English codes agree across both, so the fault tends to show up first on names and words with accents.
Control codes are the values 0 to 31, plus 127. They command things like tabs and line breaks instead of printing a character. Since they have no visible shape, the result names them, so a code 9 in your list is reported as Tab rather than shown as a gap.
Same rules as this one: free, in your browser, with nothing uploaded.
Exact age in years, months and days for any form.
Marks, discounts and change, worked out properly.
Body mass index from height and weight, with its range.
Monthly loan payment, total interest and full cost.
The final price after a discount, and what you saved.
Add or remove GST at the rate your invoice uses.
Add tax to a price or pull it back out.
Work out a tip and split a bill between people.