ASCII to Text Converter

Given a string like 72 101 108 108 111, this converter reads each number as an ASCII code and returns the text it spells — in that case, Hello. It auto-detects the base (decimal, hex or binary) from the input, tolerates any common separator, and strips 0x, \x or # prefixes so you can paste codes straight from a C source file, a hex dump or a CTF challenge without cleaning them first.

How the converter reads your input

  1. 1

    Paste the ASCII codes

    Separated by spaces, commas, semicolons, newlines — or nothing, if every code is fixed-width.

  2. 2

    Pick or autodetect the base

    Decimal for numbers 0-127, hex for two-digit pairs, binary for 8-bit groups.

  3. 3

    Each code becomes one character

    Code 65 is `A`, 0x61 is `a`, 00100000 is space.

  4. 4

    Read the decoded text

    Non-printable codes (NUL, BEL, DEL) are shown as their mnemonic in brackets.

Input formats the converter understands

Example input Base
72 101 108 108 111 decimal
72,101,108,108,111 decimal
48 65 6C 6C 6F hex
0x48 0x65 0x6C 0x6C 0x6F hex
\x48\x65\x6C\x6C\x6F hex (C escape)
48656C6C6F hex (continuous)
01001000 01100101 01101100 01101100 01101111 binary

Handling of control codes

ASCII 0-31 and 127 are non-printing. Depending on the target use, the converter can either output them as raw bytes (useful for constructing a protocol string) or substitute their mnemonics in angle brackets: <LF>, <CR>, <TAB>, <NUL>, <DEL>.

Beyond ASCII

If your codes are above 127, strictly speaking they are not ASCII. Two common cases:

  • Latin-1 / Windows-1252 — Single byte per character, values 128-255 cover accented letters.
  • UTF-8 — Multi-byte, with continuation bytes starting 10xxxxxx. A string of codes like C3 A9 decodes to \u00e9.

The converter treats input above 127 as UTF-8 bytes by default, which covers most modern text.

Reversing the direction

For text to codes, use the companion tools: Text to ASCII, Text to Binary, Text to Hex.

Frequently Asked Questions

Yes if every code is a fixed width: 8 bits for binary, 2 digits for hex. For decimal you need separators because decimal codes are 1-3 digits and cannot be split reliably otherwise.

Some codes in your input are above 127 and may be invalid UTF-8 byte sequences. Try decoding as Latin-1 if the source is an older text file or a dump from a Windows system.

Yes. C-style escapes (\x48), C literals (0x48), URL percent-encoding (%48) and assembly prefixes ($48) are all stripped before parsing.

Codes above 127 are valid bytes but not ASCII. Codes above 255 do not fit in a byte — the converter flags them and skips them rather than guessing.

Related Tools