Skip to content
ZeroServer.tools

ASCII to Text

Convert ASCII / Unicode code points back into text.

Base
Decoded Text

Character Codes Back to Text

Paste a list of character codes — decimal or hexadecimal, separated by spaces or commas — and this tool reconstructs the original text using String.fromCodePoint, correctly handling Unicode values beyond the ASCII range. It's the inverse of the Text to ASCII tool. All decoding is done locally in your browser.

Built and maintained by Meet Shah · Last updated

What this tool is used for

  • Turning a list of code points from a log, a database column or a puzzle back into the string it represents.
  • Reading a numeric dump where the base is unstated and has to be inferred from the values themselves.
  • Recovering text from an export that escaped every single character as a number.
  • Checking whether a control character is present in data that looks perfectly clean when printed.
  • Confirming a suspected off-by-32 case error by looking at the raw numeric values.

Frequently Asked Questions

What is the ASCII range?
0-127, seven bits. Printable characters run from 32 (space) to 126 (~); 0-31 and 127 are control codes. Any value above 127 is not ASCII — it belongs to some extended encoding, and guessing which one is where corruption starts.
What are the control characters for?
Teleprinter operations that mostly persist: 9 is tab, 10 line feed, 13 carriage return, 7 the bell, 27 escape (which begins terminal colour sequences). CR and LF being separate is why Windows uses both and Unix only LF.
Which numeric bases might the input be in?
Decimal (65), hex (41), octal (101) and binary (01000001) all represent 'A'. Without a prefix the same digits are ambiguous — 101 is 'A' in octal but 'e' in decimal — so the base must be stated, not inferred.
Is there a trick for letter case?
Yes, and it is by design: uppercase and lowercase differ by exactly 32, a single bit (0x20). 'A' is 65, 'a' is 97. Case conversion in early systems was one bitwise operation, which is why the alphabet sits where it does.
What about extended ASCII?
There is no single extended ASCII. Values 128-255 mean different characters in Latin-1, Windows-1252, CP437 and others, which is precisely why UTF-8 was created and why old text files often render wrongly.
How do I recognise which base the numbers are in?
By range and width. Values above 127 rule out 7-bit ASCII; two-character groups with letters A-F suggest hex; three-digit groups with no 8 or 9 suggest octal. Where all three fit, only the source's own convention settles it.
Why do 13 and 10 appear together so often?
They are carriage return and line feed — the Windows line ending, inherited from teletypes where the two were physically separate actions. Unix uses 10 alone, which is why a file moved between them shows stray characters.

Common errors and gotchas

  • Guessing the base wrongly. The same digits mean different characters in decimal, octal and hex, and nothing in the input announces which.
  • Assuming values above 127 are ASCII. They are not, and how they decode depends entirely on the encoding you assume.
  • Losing the separator, after which a run of digits can be split in more than one equally valid way.
  • Silently dropping 13 and 10, which are the line break itself rather than noise sitting around it.
  • Treating unprintable results as failure. Control codes decode perfectly correctly and simply have nothing to show.

Related Encoders & Decoders tools

Private & free — this tool runs entirely in your browser.

IndieKitShip your Next.js startup in days.affiliate