The Complete Encoding Guide
Eight free encoders and translators in your browser, plus a primer on what each format is, when to use it, and how it works.
Every developer, security tinkerer, and curious puzzle-solver eventually needs to encode or decode some text — whether that's URL-escaping a query string, translating a love note into Morse, decoding a Base64-stuffed certificate, or making a passphrase into something a computer can't read at a glance. This guide is the single hub for every text-encoding tool on the site, and a quick primer on what each format is for.
All eight tools below run entirely in your browser. Your text is never sent to a server, never logged, never stored. Pick the encoding you need, paste, copy, done.
Binary
Binary is the foundation: every character on every modern computer is, at its lowest level, a sequence of 0s and 1s. ASCII uses 7 bits per character (or 8 if you include the parity bit); UTF-8 — the modern web standard — uses 1–4 bytes per character. Our Binary Translator auto-detects which direction you want and converts in either direction.
When to use: computer-science teaching, puzzle design, geek-culture inscriptions on shirts and tattoos, debugging unexpected characters in a database export.
Morse code
The 160-year-old encoding for telegraph, radio, and light-flash communication. Letters, digits, and punctuation are encoded as short sequences of dots and dashes; words are separated by a forward slash. Our Morse Code Translator handles both directions and supports the full international Morse character set (A–Z, 0–9, plus 14 punctuation marks).
When to use: amateur radio (CW is still actively used), Boy/Girl Scout merit badges, escape-room puzzles, secret notes in birthday cards.
NATO phonetic alphabet
"Alpha, Bravo, Charlie, Delta…" — the international standard for spelling letters over a noisy radio. Officially adopted by NATO in 1956, it's used everywhere from aviation and the military to call-center agents spelling unusual names. Our NATO Phonetic Translator converts any string of letters and digits to the spelling-alphabet form.
When to use: spelling your name over the phone, aviation/maritime radio, amateur radio licensing exam prep, theatrical scripts.
ROT13
The simplest substitution cipher — every letter is rotated 13 places forward in the alphabet. Because 26/2 = 13, applying ROT13 twice returns the original text. Our ROT13 tool encodes and decodes in one click. Used since the early Usenet days as a way to mark spoiler text.
When to use: Usenet/Reddit-style spoiler tagging, mild puzzle obfuscation, teaching elementary cryptography. Do not use for actual security — ROT13 is trivially reversible and offers zero protection.
Base64
The standard way to safely embed binary data (images, files, certificates) inside text-only formats like email, JSON, and JWT tokens. Base64 takes 3 bytes of binary input and encodes them as 4 ASCII characters from a 64-letter alphabet (A–Z, a–z, 0–9, +, /). Output is roughly 33% larger than input. Our Base64 Encoder/Decoder auto-detects which way you want.
When to use: data URLs in HTML/CSS, decoding JWT auth tokens, embedding images in email, encoding binary file payloads in JSON. Not for security — Base64 is encoding, not encryption.
URL encoding (percent-encoding)
The way URLs handle non-ASCII characters and special symbols. A space becomes %20; a question mark becomes %3F. Our URL Encode/Decode tool handles both directions and respects the difference between percent-encoding the path and percent-encoding query values.
When to use: debugging API requests, hand-crafting URLs with special characters, safely embedding user input in query strings.
HTML entities
The way HTML escapes characters that would otherwise be parsed as markup: <, >, &, and the double-quote. Plus thousands of named entities for symbols like ©, —, and ♥. Our HTML Entity Encoder safely escapes a string for embedding in HTML, and decodes it back.
When to use: sanitizing user input before display, debugging "why does my code show up as <b>text</b> instead of bold", building CMS importers.
Markdown ↔ HTML
Less of an "encoding" and more of a markup-language conversion, but the workflow is the same: paste content in one format, get it back in another. Our Markdown → HTML tool converts standard CommonMark to clean semantic HTML; HTML → Markdown goes the other way for content migration. See the dedicated Markdown Guide for a syntax primer.
When to use: migrating content between Notion / Obsidian / GitHub / WordPress / static-site generators, composing HTML emails in plain Markdown, sanitizing CMS exports.
Encoding vs encryption — a critical distinction
Every tool above is encoding, not encryption. Encoding is reversible without a key — anyone can decode Base64, ROT13, or URL-escapes back to the original. Encryption requires a key and is computationally hard to reverse without it.
If you need actual security (passwords, secrets, sensitive data), use a real encryption tool — your password manager, your operating system's keychain, or a dedicated cryptographic library. Don't trust ROT13 or Base64 to protect anything important.
Encoding cheat sheet
| Format | Reversible without key? | Output charset | Common use |
|---|---|---|---|
| Binary (8-bit) | Yes | 0, 1 | Computer-science teaching, puzzles |
| Morse | Yes | . − / | Radio, puzzles, telegraphy |
| NATO phonetic | Yes | Words (Alpha, Bravo…) | Spelling over voice |
| ROT13 | Yes (trivially) | A–Z, a–z | Spoiler hiding |
| Base64 | Yes | A–Z, a–z, 0–9, +, / | Binary data in text |
| URL encoding | Yes | Printable ASCII + %XX | URLs and query strings |
| HTML entities | Yes | Printable ASCII + &XX; | Safe HTML output |
| Markdown / HTML | Yes (mostly) | Printable ASCII | Content portability |
Frequently asked questions
Why does the same text produce different binary output in different tools?
Is Base64 secure?
Why do I sometimes see + instead of %20 for a space in a URL?
application/x-www-form-urlencoded spec (used in HTML form submissions) encodes spaces as +. The standard URL spec (RFC 3986, used in URL paths) encodes spaces as %20. Our URL Encoder uses %20 by default for path-safety; both decode to a space.What's the difference between " and "?
" is the named entity (more readable); " is the numeric entity (works in even the most legacy systems). Either is acceptable.