Byte to ASCII
Turn raw bytes into ASCII text with visible control characters.
Byte to ASCII – Read Raw Bytes as ASCII Text
This tool turns a sequence of raw bytes – from a hex dump, a serial port log, a network packet, or a firmware buffer – into readable ASCII, while making every invisible control character visible. Paste bytes in hex, decimal, octal, or binary; the base is detected automatically.
Why raw bytes need special handling
When you receive data from a device or a socket, it rarely contains only letters. The sample 02 47 45 54 20 2F 73 74 61 74 75 73 03 0D 0A 00 7F FF holds the text GET /status, wrapped in STX/ETX framing bytes and followed by CR LF, a NUL, a DEL, and a byte above 127. A normal text decoder would silently drop or garble these bytes. Here they are rendered as [STX]GET /status[ETX][CR][LF][NUL][DEL][0xFF], so you can see exactly what arrived on the wire.
Options
- Bytes are – auto-detect, or force hexadecimal, decimal, octal, or binary if the input is ambiguous (for example
10 20 30). - Non-printable bytes – show control bytes by name, as a hex-editor style dot, as a \x00 escape for source code, or keep them raw.
- ASCII to Bytes – the reverse direction turns text into uppercase hex bytes, so
\r\nline endings become0D 0A. Use it to build test payloads for serial terminals and socket tools.
Common uses
Embedded developers read UART and RS-232 logs, modbus-ASCII frames, and AT-command responses. Network engineers inspect TCP payloads copied from Wireshark. Reverse engineers look for readable strings inside binary blobs. In each case the question is the same: which bytes are text and which are protocol bytes?
ASCII control characters
| Dec | Hex | Name |
|---|---|---|
| 0 | 00 | NUL |
| 1 | 01 | SOH |
| 2 | 02 | STX |
| 3 | 03 | ETX |
| 4 | 04 | EOT |
| 5 | 05 | ENQ |
| 6 | 06 | ACK |
| 7 | 07 | BEL |
| 8 | 08 | BS |
| 9 | 09 | TAB |
| 10 | 0A | LF |
| 11 | 0B | VT |
| 12 | 0C | FF |
| 13 | 0D | CR |
| 14 | 0E | SO |
| 15 | 0F | SI |
| 16 | 10 | DLE |
| 17 | 11 | DC1 |
| 18 | 12 | DC2 |
| 19 | 13 | DC3 |
| 20 | 14 | DC4 |
| 21 | 15 | NAK |
| 22 | 16 | SYN |
| 23 | 17 | ETB |
| 24 | 18 | CAN |
| 25 | 19 | EM |
| 26 | 1A | SUB |
| 27 | 1B | ESC |
| 28 | 1C | FS |
| 29 | 1D | GS |
| 30 | 1E | RS |
| 31 | 1F | US |
| 127 | 7F | DEL |
For decimal lists without control bytes, Decimal to ASCII is simpler; for text in other encodings, use Byte to String.
Frequently Asked Questions
What do [STX], [ETX], or [NUL] mean in the output?
They are the standard names of ASCII control characters – bytes 0–31 and 127 that have no visible glyph. STX (0x02) and ETX (0x03) mark the start and end of a message in many serial and barcode protocols, NUL (0x00) is a zero byte often used as a string terminator or padding, and CR LF (0x0D 0x0A) ends a line in HTTP, SMTP, and Windows text files.
Which non-printable option should I choose?
Name is best for reading protocols because you see exactly which control byte arrived. Dot mimics the ASCII column of a hex editor or hexdump -C. Escape (\x00) produces output you can paste into Python, C, or JavaScript source. Keep raw passes the bytes through unchanged, which is only useful if you copy the result into another tool.
What happens with bytes above 127?
Bytes 128–255 are not ASCII. They are shown as [0xFF], \xFF, or a dot depending on the option, so you can tell them apart from real text. If the data is UTF-8 encoded text rather than binary, decode it with Hex to UTF-8 or Byte to String instead.
Can I paste the output of hexdump or Wireshark?
Paste only the hex byte columns, without offsets and the ASCII column. Bytes may be separated by spaces, commas, or colons, may use 0x or \x prefixes, or may be one continuous string like 48656C6C6F.