Skip to content
ZeroServer.tools

Octal to Text

Decode octal (base-8) codes back to readable text.

How to convert octal to text?

Paste space, comma, or newline-separated octal values and each is decoded to its Unicode character. For example, 110 → 'H' (decimal 72), 60 → '0' (decimal 48). The tool uses parseInt(value, 8) to parse base-8 and String.fromCodePoint to reconstruct the character. Values above U+10FFFF or non-octal characters will show an error.

Built and maintained by Meet Shah · Last updated

What this tool is used for

  • Reading a legacy dump or a permissions listing that reports character values in base eight.
  • Decoding octal escapes copied out of C source or a shell script to see the literal they actually produce.
  • Recovering text from a system that logged its bytes in octal rather than hex.
  • Solving a puzzle whose values are deliberately expressed in an unfamiliar base.
  • Checking whether a numeric sequence is octal at all by seeing whether it decodes to sensible text.

Frequently Asked Questions

How is octal text laid out?
Three digits per byte, since a byte reaches 377 octal (255 decimal). 'A' is 101 and 'a' is 141. That fixed width is what lets a decoder split the stream without separators.
Why does a leading digit never exceed 3?
Because three octal digits span 9 bits and a byte is only 8, so the leading digit uses just two of them. Seeing 4-7 in the first position means the value is out of byte range or is not octal at all.
Where does octal text actually appear?
In C, Python and shell string escapes (\101 for 'A'), in od -c output, and in old tar headers. Modern code prefers \x hex escapes, so octal escapes usually signal older sources.
How does this handle non-ASCII characters?
Each UTF-8 byte is encoded separately, so a multi-byte character becomes several octal groups. 'é' is two bytes (303 251), not one — assuming one group per character is the usual decoding error.
Is it a form of encryption?
No. It is a change of notation with no key, fully reversible by anyone. Like binary or hex text, it obscures nothing from anyone who recognises the format.
How do I tell octal from decimal in a dump?
By the digits and the grouping. Octal bytes are three digits with no 8 or 9 and never exceed 377; decimal reaches 255 and uses all ten digits. A stream containing an 8 or 9 is not octal, which is the quickest disambiguation.
Why did octal fall out of use?
Because it maps cleanly onto 12-, 24- and 36-bit machine words, and modern hardware is built on 8-bit bytes — which divide evenly into hexadecimal nibbles and not into octal digits. Hex won because it matches the byte.
Where does octal still survive?
Unix file permissions, where each digit encodes read, write and execute as three bits, and C-family escape sequences such as `\101`. Both predate the shift to hex and are too entrenched to change.

Common errors and gotchas

  • Mistaking decimal for octal. Any 8 or 9 proves it is not octal, and everything decoded up to that point is wrong.
  • Assuming three digits always fit a byte. Only values up to 377 do, and 400 or above is a different character entirely.
  • Feeding in values without separators, where a run of digits can be grouped several equally valid ways.
  • Expecting non-ASCII characters to appear. Above 127 the result depends on the encoding you assume, and octal does not record it.
  • Treating the leading zero in `0755` as part of the value rather than the marker saying the rest is octal.

Related Encoders & Decoders tools

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

IndieKitShip your Next.js startup in days.affiliate