The string of numbers in the dump
You are three levels deep in a debugging session, staring at a memory dump or a network capture, and one field reads 72 101 108 108 111. It is not random. Those are decimal character codes, and they spell "Hello." Half of debugging strange data is recognizing that a machine stored your text as numbers, because at the bottom that is all text ever is.
This tool turns those numbers back into readable characters, and it also runs the trip in reverse, converting ordinary text into the codes a given format expects. Decimal, hexadecimal, and binary all work, in both directions.
What it decodes and encodes
Paste a run of numbers and pick the base, and the tool rebuilds the characters they represent. Paste ordinary text and choose an output base, and it emits the numeric codes. Decoding is the direction you reach for mid-debug; encoding is the one you need when a data format wants text expressed as numbers.
The three common bases appear in different places, and recognizing the shape tells you which one you are holding:
| Base | The letter "A" looks like | Where you meet it |
|---|---|---|
| Decimal | 65 | Character dumps, simple CTF puzzles |
| Hexadecimal | 41 or 0x41 | Memory dumps, URL percent-encoding, color codes |
| Binary | 01000001 | Protocol traces, low-level data, obfuscation |
A useful anchor: in ASCII, uppercase "A" is 65, lowercase "a" is 97, and a space is 32. Those three values cover an enormous share of what you will decode by hand.
Where encoded text shows up in the wild
Encoded characters are not a curiosity. They are everywhere once you know to look.
Debugging data dumps. Memory viewers and log files frequently show raw bytes as decimal or hex. Reading 72 101 108 108 111 as "Hello" turns a wall of noise into a clue about what your program actually stored.
CTF puzzles. Capture-the-flag challenges lean on number-to-text encoding as an easy first layer, often decimal or binary, sometimes chained with other steps before the real payload appears.
Obfuscated JavaScript. Code that does not want to be read often spells its strings as escape sequences. "\x48\x65\x6c\x6c\x6f" is simply "Hello" written in hex escapes, and deobfuscation starts by decoding those back.
Network protocol inspection. Packet captures show payloads as bytes. Reading the text inside a request or response means converting those hex or decimal values back into characters.
HTML and escape sequences. On a web page A renders as "A," and \x41 means the same character in many programming languages. Both are just codes wearing a disguise.
ASCII versus Unicode code points
Here is the honest distinction, because it trips people up. ASCII is a small, fixed table covering values 0 through 127: the English letters, digits, common punctuation, and control characters. Everything in that range is unambiguous, and this tool decodes it exactly.
Beyond 127 you have left ASCII and entered Unicode code points, the far larger system that covers accents, symbols, and emoji. A value like 233 is "é" in Unicode, but ASCII stops at 127 and has nothing to say about it.
Whitespace and separators
Sources separate codes in different ways: spaces, commas, semicolons, or newlines. This tool is forgiving about which of those you use. It splits on whitespace and those punctuation delimiters, so 72 101 108 and 72,101,108 decode the same, but separators are required: a run with none is read as a single code point.
Fixed-width input needs more care. Hex pairs are usually two digits each (48 65), while decimal values vary in length, since 65 is two digits and 105 is three. A decimal run with no separators is not split into values at all: the whole run is read as one code point, so 10511 becomes a single wrong glyph. When you can, keep the separators in, because a missing one changes the reading entirely.
The other direction: encoding text into codes
Encoding is the less obvious but equally useful half. Sometimes a format wants your text as numbers: a protocol that transmits bytes, a puzzle you are building, a string you are hiding from casual eyes, or a data file that stores character codes in columns. Type your text, choose the base, and the tool emits decimal, hex, or binary values you can drop straight in.
It is also how you learn what a character really is. Curious whether a tab and a space differ at the byte level? Encode both and watch the numbers: a space is 32, a tab is 9. When you are cleaning messy text rather than studying it, the text cleaner and the find and replace tools work on the visible characters, while this one shows you the codes underneath.
Frequently Asked Questions
What is the difference between ASCII and Unicode here?
ASCII covers values 0 to 127 and handles English letters, digits, and common punctuation. Unicode is the larger system that adds accents, symbols, and emoji, using code points well above 127. This tool interprets higher values as Unicode code points. It does not decode multibyte UTF-8 byte sequences; use a UTF-8 decoder for those.
How do I know which base my numbers are in?
Look at the digits. Only 0s and 1s means binary. Digits 0 through 9 mixed with the letters a through f means hexadecimal. Values of 0 through 9 alone, up to three digits, are probably decimal. Hex pairs are often two digits and sometimes carry a 0x prefix.
Why does part of my decoded text come out as strange symbols?
Usually because a value sits above 127, outside ASCII. Those belong to Unicode, and a single byte there may be only part of a multi-byte character. Plain English and source code stay within 0 to 127 and decode cleanly.
Can it decode \x41 style escapes?
Not directly. The tool decodes bare digits, so you must strip the \x prefix yourself first: \x41 is rejected, while 41 in hex decodes to "A." The same handling applies to HTML entities like A, where you remove the wrapper and decode 65 in decimal. Remove the wrapper syntax, choose the right base, and decode.
Does this tool store or upload my data?
No. Encoding and decoding happen entirely in your browser, and nothing you paste is sent anywhere. That matters when the data is a private capture, a confidential log, or an unfinished puzzle you would rather not leak.
Recognize the shape, then decode
The skill this tool supports is pattern recognition. Once you can glance at 72 101 108 108 111 and suspect text, or spot \x48\x69 and know it hides a word, opaque data becomes a lead. Memorize the three anchors, 65 for "A," 97 for "a," and 32 for a space, and you will read more raw dumps correctly on the first pass. The numbers were never the mystery. They were only ever text in disguise.