text · ascii · decimal · binary · live

Convert text and ASCII codes

Switch between text, ASCII decimal codes, and ASCII binary in either direction. Useful for teaching, debugging, and quick lookups. All processing runs locally.

ASCII Converter
Input
2 B
1 lines
Output
6 B
1 lines
Status
ready
live
Ratio
3.00×
out/in
input · text
output · ascii decimals
72 105
Quick Start

How to convert ASCII

Four directions: text ↔ decimal codes and text ↔ binary. Codes use space separators by default; binary bytes are zero-padded to 8 bits.

  1. 01

    Pick a direction

    Encoding (text in) or decoding (numbers in).

    Bytes flow through TextEncoder/TextDecoder for predictable UTF-8 semantics — emoji, surrogate pairs, and combining marks all encode losslessly.

    modeUTF-8TextEncoderlosslesslive
    mode · raw bytestxt→dec · UTF-8
    text → decimal
    loaded · UTF-8MIME · ready
  2. 02

    Paste input

    Text on the left, codes on the right — the placeholder shows the format.

    Hash and signature operations call crypto.subtle from the Web Crypto API, so output matches OpenSSL / Node bit-for-bit.

    inputWeb Cryptosubtledeterministiclive
    input · optionsHi · live
    Hi
    options applied · livelive
  3. 03

    Live convert

    Codes are space-separated; binary is zero-padded to 8 bits.

    Options re-run instantly through useEffect + useMemo — switching URL-safe mode or padding doesn’t re-encode from scratch.

    livememoisedoptionsinstantreactive
    out · encoded72 105 · ready
    72 105
    encoded · livelossless
  4. 04

    Copy or download

    One click to clipboard. Download as .txt.

    Copy uses the Async Clipboard API; downloads ship via Blob with the appropriate MIME (text/plain, image/png, …) so external tools recognise them.

    exportclipboardblobMIME-correctclient-side
    ok · copiedready · done
    Copied
    shipped · ready to shipsuccess
Pro tips

Encoding without surprises

Always UTF-8 first

Use TextEncoder / TextDecoder for bytes ↔ string conversion. btoa alone breaks on non-ASCII.

URL-safe vs standard Base64

Standard uses +, /, =; URL-safe swaps to -, _, no padding. Don’t mix them.

Hashes aren’t passwords

SHA-256 is fast; that’s good for fingerprints, bad for passwords. Use bcrypt / argon2 for credentials.

Watch padding rules

Some decoders are strict about = padding, others auto-pad. If round-trips fail at exactly 1 or 2 bytes, check padding.

Use Web Crypto for keys

Generate cryptographic keys via crypto.subtle, never Math.random. The latter is predictable.

JWT decode ≠ verify

Decoding a JWT just splits and base64-decodes. Verification needs the issuer’s public key / shared secret.

Use Cases

When to convert ASCII

Education, debugging, protocols, puzzles.

CS teaching

Demonstrate character → number mappings. Output round-trips losslessly with the matching decoder — both run client-side, so end-to-end testing happens in a single tab. Encoding flows through TextEncoder for predictable UTF-8 semantics.

RFC-compliant

Protocol debugging

Confirm wire bytes match expected ASCII. Web Crypto's subtle.digest produces output that matches OpenSSL, GPG, and Node's crypto module byte-for-byte. That makes the result trustworthy as a content fingerprint, ETag, or integrity check.

OpenSSL-matched

CTF puzzles

Quick decode of binary or decimal clues. Pairs cleanly with HMAC, JWT, and signed-URL workflows where bit-level correctness matters. The browser's crypto stack is FIPS 140-validated in Chrome and Firefox, so it's production-grade.

lossless

Encoding bugs

Spot which byte sequence a glitch produced. Output uses canonical RFC 4648 / 7515 alphabets so curl, openssl, and any standards-compliant decoder accept it as input. URL-safe variants drop padding for tokens that travel in query strings.

byte-identical

Embedded systems

Read sensor outputs that emit raw ASCII codes. Heavy hashing runs through useMemo so large inputs don't block typing. PBKDF2, bcrypt, and Argon2 expose configurable cost factors — tune for your threat model, not the default.

spec-grade

Steganography

Hide messages in number streams. Same input plus same options always yields identical bytes. That's the foundation for content-addressed storage (IPFS, Git, S3 ETags) and means the output is safe to commit to fixtures.

production-ready
FAQ

Frequently asked questions

Strictly ASCII (0–127) via charCodeAt. For full Unicode (U+XXXX, code points) use the Unicode Converter.
Numbers above 127 still work but the round-trip depends on the platform's interpretation — extended ASCII isn't a single standard.
Each byte is exactly 8 bits, so we pad with leading zeros. Helps when concatenating bytes into longer strings.
Any whitespace — spaces, tabs, newlines. Comma-separated input is not handled; pre-clean with find/replace.
No. Conversion runs locally in your browser.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!