Binary Text Converter
Convert text to binary, hexadecimal or ASCII decimal codes, and back again, instantly, right in your browser.
About the Binary Text Converter
Under the hood this runs on the TextEncoder API to get real UTF-8 bytes before converting, so accented letters, emoji and other multi-byte characters round-trip correctly instead of breaking the way a naive ASCII-only converter would. The letter "A", for instance, becomes binary 01000001, hex 41, or decimal 65 depending on the mode picked.
Switch to a reverse mode (Binary/Hex/ASCII → Text) and the input gets validated first, so a malformed byte group throws a clear error instead of silently producing garbled text.
One character doesn't always mean one group
Basic English letters and digits are single-byte in UTF-8 and produce exactly one binary, hex, or decimal group each, but an emoji or an accented character outside the basic Latin range takes up multiple bytes, and so produces multiple groups for what looks like a single character on screen. "é" encodes to two UTF-8 bytes, so it converts to two separate 8-bit binary groups, not one, this is real UTF-8 behavior rather than a quirk of this tool, and it's why the group count in the output doesn't always match the visible character count of the input.
The "ASCII" mode is really showing raw byte values
True 7-bit ASCII only covers decimal values 0 through 127, but this converter's ASCII mode accepts and displays values up to 255, since it's working with UTF-8 byte values rather than strictly ASCII codes. A value from 128 to 255 in the output represents part of a multi-byte UTF-8 character rather than a standalone 7-bit ASCII character, worth knowing when comparing this tool's output against a strict ASCII table that only goes up to 127.
Why invalid input throws an error instead of showing garbage
The decoder used here runs in strict "fatal" mode, which rejects a byte sequence that isn't valid UTF-8 outright rather than silently substituting a replacement character (a common fallback that quietly produces the � symbol in place of bytes that don't form a real character). That stricter behavior is deliberate, converting a malformed or accidentally truncated byte sequence should surface as a clear error rather than a decoded result that looks plausible but is actually wrong.
What this gets used for in practice
Puzzle and CTF-style challenges commonly hide a message as a string of binary digits or hex pairs, decoding one by hand is slow and error-prone once the message runs past a few characters, pasting it into the Binary/Hex/ASCII → Text mode gives an instant answer instead. It's also a common teaching aid for explaining how computers actually represent text, seeing "Hello" turn into a specific, deterministic sequence of eight-bit groups makes the abstract idea of character encoding concrete in a way that's harder to convey just by describing it. On the encoding side, generating a binary or hex representation of a short phrase is a frequent request for a novelty tattoo, a puzzle hunt clue, or a piece of geeky decoration, where getting the exact byte sequence right matters more than it might seem.
Six modes covering both directions of three formats
The six-mode dropdown covers text converting into and out of each of three common representations, binary, hex, and decimal ASCII, keeping all six on one page rather than splitting them into six separate tools. Binary is the most literal representation, showing exactly the bits a computer stores. Hex is the same underlying bytes written more compactly, two characters per byte instead of eight, commonly used in programming contexts because it's easier for a person to read and write than a long string of ones and zeros. Decimal ASCII/byte values sit between the two, familiar to anyone who's seen a basic ASCII table, expressing each byte as a plain base-10 number instead of binary or hex notation.
Frequently Asked Questions
Why does one character sometimes produce multiple binary or hex groups?
Basic English letters are single-byte in UTF-8 and produce one group each, but an emoji or accented character often takes multiple bytes to encode, producing multiple groups for what looks like one character. This is standard UTF-8 behavior, not specific to this converter.
Why does the ASCII mode show values above 127?
True 7-bit ASCII only covers 0-127, but this mode works with UTF-8 byte values, which go up to 255. A value above 127 represents part of a multi-byte character rather than a standalone ASCII character, worth knowing when comparing against a strict ASCII reference table.
Why does invalid binary or hex input show an error instead of some output?
The decoder runs in strict mode, rejecting byte sequences that aren't valid UTF-8 rather than silently substituting a replacement character. This surfaces a malformed or truncated input as a clear error instead of producing a decoded result that looks plausible but is actually wrong.
Does this tool send anything I type to a server?
No. All encoding and decoding happens locally using the browser's built-in TextEncoder and TextDecoder APIs. Nothing typed or pasted in leaves the browser tab.
What's the difference between the binary, hex, and ASCII modes?
All three represent the same underlying bytes differently. Binary shows the literal bits, hex shows the same bytes more compactly using two characters per byte, and ASCII/decimal shows each byte as a plain base-10 number. Which one to use depends on which format the destination, a puzzle, a spec, or a piece of code, actually expects.
Can this decode a hidden binary or hex message from a puzzle?
Yes, that's one of the more common uses. Pasting a binary or hex string into the corresponding "to Text" mode decodes it instantly, much faster and less error-prone than converting each group by hand.