FormatterHQ

Encode & Decode

URL, HTML entity, UTF-8, hex, binary, Base32 and Base58 encoders and decoders, plus JWT decoding, gzip and zlib compression and Morse code.

ASCII Table Complete ASCII table with decimal, hex, octal, binary, HTML codes and descriptions of control characters, plus extended Latin-1. ASCII to Text Convert ASCII or Unicode character codes (decimal, hex, octal or binary) back into readable text. ASN.1 Decoder Parse DER/BER ASN.1 structures from PEM, Base64 or hex into a readable tree with OID names, strings, times and integers. Atbash Cipher Encode and decode the Atbash cipher, which mirrors the alphabet (A↔Z, B↔Y). Running it twice returns the original text. Barcode Generator Generate Code 128, EAN-13, UPC-A, Code 39, ITF-14, ISBN, Data Matrix, PDF417 and more barcodes. Download PNG or SVG for free. Base32 Decode Decode Base32 strings back to text. Padding is optional and lowercase input is accepted. Base32 Encode Encode text to Base32 (RFC 4648) using the A–Z and 2–7 alphabet, with optional padding. Base58 Decode Decode Base58 strings (Bitcoin, Flickr or Ripple alphabet) back into readable text. Base58 Encode Encode text to Base58 with the Bitcoin, Flickr or Ripple alphabet — no 0, O, I or l characters. Base64 Decode Decode Base64 to text online. Handles UTF-8, URL-safe Base64, missing padding and binary data downloads. Base64 Encode Encode text or files to Base64 online. UTF-8 safe, with URL-safe alphabet and MIME line wrapping options. Basic Auth Header Generator Build an HTTP "Authorization: Basic" header from username:password, or decode an existing Basic auth header back to credentials. Binary to Text Translate binary code (groups of 8 bits) back into readable text, with UTF-8 support. Byte to String Convert a list or array of byte values (decimal, hex or signed) back into a readable UTF-8 string. Caesar Cipher Encoder / Decoder Encrypt and decrypt Caesar shift ciphers with any shift, or brute-force all 25 shifts with automatic English detection. Char to ASCII Look up the ASCII / Unicode code of every character in decimal, hex, octal, binary and HTML entity form. Code to ASCII Convert source code or any text into a list or array of ASCII character codes for JavaScript, Python or C. CSR Decoder Decode a PKCS#10 certificate signing request to check the subject, SANs, key size and signature before you send it to a CA. DER to PEM Converter Convert binary DER (.der, .cer) certificates and keys, or their hex/Base64 dump, into PEM text with the right BEGIN/END header. Encrypt & Decrypt Text Encrypt or decrypt text with AES, Triple DES, Rabbit, RC4 or Blowfish using a secret passphrase — in your browser. Gzip Compress Compress text with gzip and get the result as Base64 or hex, ready for APIs, headers or test fixtures. Gzip Decompress Decompress gzip data that is Base64 or hex encoded and view the original text online. Hex to String Decode hexadecimal bytes back into readable text (UTF-8). Accepts spaces, 0x prefixes and \x escapes. Hex to UTF-8 Decode hex bytes as UTF-8 and see how multi-byte characters, emoji and invalid sequences come out, with real examples. HTML Decode Decode HTML entities such as &amp;amp;, &amp;eacute; and &amp;#8364; back into the characters they represent. HTML Encode Encode text as HTML entities: markup characters and all non-ASCII symbols become safe numeric or named references. HTML Entities List Searchable list of 1,400+ named HTML character entities with decimal and hex codes, code points and CSS escapes. Click to copy. HTML Entities to Text Turn HTML entities (named, decimal and hex) back into plain Unicode text. JSON Decode Online Decode JSON strings online. Convert escaped or encoded JSON text into readable, formatted JSON, similar to json_decode. JSON Deserialize Online Deserialize an escaped JSON payload into formatted JSON, then map it to typed objects in JavaScript, Python, Java or C# safely. JSON Encode Online JSON encode text or a document into an escaped string, with each escaping rule explained and the json_encode flags that give identical output. JSON Serialize Online Serialize JSON into its most compact transport form, optionally wrapped as an escaped string literal for storage or messaging. JSON to Query String Build URL-encoded query strings from JSON objects, with a choice of bracket, indexed or repeated keys for arrays. JSON URL Decode Decode a URL-encoded JSON string back into readable JSON and pretty-print it. JSON URL Encode URL-encode JSON so it can be sent as a query-string parameter or form field without breaking the URL. JWK to PEM Converter Convert JSON Web Keys or a whole JWKS (RSA, EC, OKP) into PEM public (SPKI) and private (PKCS#8) keys. JWT Decoder Decode a JSON Web Token to inspect its header, payload claims and expiry time, and verify its signature with your key. Runs locally. JWT Encoder & Generator Create and sign JSON Web Tokens with HS256, RS256, ES256, PS256 or EdDSA using a secret or PEM key. Signing happens in your browser. Mailto Link Generator Create mailto: links with pre-filled recipients, CC, BCC, subject and body — correctly URL-encoded, with the HTML <a> tag. Morse Code Translator Translate text to Morse code and Morse code back to text in two linked boxes, one for each direction. NATO Phonetic Alphabet Translator Spell out text with the NATO phonetic alphabet (Alfa, Bravo, Charlie…) or turn code words back into text. Handles digits and symbols. PEM to DER Converter Convert PEM certificates, keys and CSRs to binary DER: view it as hex or Base64 or download the .der file. PEM to JWK Converter Convert PEM public keys, private keys and certificates (RSA, EC, Ed25519) to JSON Web Keys or a JWKS with a thumbprint kid. QR Code Generator Create free QR codes for URLs, text, Wi-Fi, vCards, e-mail, SMS, phone numbers, locations and events. Custom colours, PNG and SVG. QR Code Reader & Scanner Scan QR codes from an image, screenshot or your camera and see the content — links, Wi-Fi passwords, contacts — safely before opening. Query String to JSON Parse URL query strings into JSON, including repeated keys, PHP/Rails bracket arrays (a[]=1) and nested objects (a[b][c]=1). ROT13 Encoder / Decoder Encode or decode ROT13 text instantly. ROT13 shifts each letter 13 places, so the same operation hides and reveals spoilers. SAML Response Decoder Decode Base64 or deflated SAMLResponse and SAMLRequest messages into readable XML and summarise issuer, NameID, conditions and attributes. SSL Certificate Decoder (X.509) Decode PEM or DER X.509 SSL/TLS certificates: subject, issuer, SANs, validity, key type, extensions and SHA-256 fingerprints. String to Byte Array Convert a string into its UTF-8 byte values as a decimal list, array or signed Java byte array. String to Hex Convert text to hexadecimal: each UTF-8 byte of the string is written as two hex digits. SVG to CSS Data URI Encode SVG as an optimized URL-encoded data URI for CSS background-image or mask, with a Base64 version for comparison. Text to ASCII Codes Convert each character of your text to its ASCII / Unicode code in decimal, hex, octal, binary or HTML form. Text to Binary Convert text to binary code: every UTF-8 byte becomes a group of eight 0s and 1s. Text to HTML Entities Convert plain text, symbols and accented letters into named HTML entities like &amp;copy; and &amp;hearts;. Unicode Character Inspector Inspect every character in a string: code point, category, script, UTF-8/UTF-16 bytes, HTML entity and JavaScript/CSS escapes. URL Decode Decode percent-encoded URLs and query strings back into readable text, with full UTF-8 support. URL Encode Percent-encode text or URLs online so they can be used safely in query strings, paths and form data. URL Parser Break a URL into scheme, host, port, path, query parameters and fragment. Decodes values and parses many URLs at once. UTF-8 Decode Decode UTF-8 bytes (\x escapes, hex, decimal, percent or mojibake like é) back into readable text. UTF-8 Encode Encode text into its UTF-8 byte sequence, shown as \x escapes, hex, decimal or percent-encoded bytes. UTF-8 to ASCII Convert UTF-8 text to pure ASCII by escaping, transliterating or removing every non-ASCII character. UTM Campaign URL Builder Build Google Analytics campaign URLs with utm_source, utm_medium, utm_campaign, utm_term and utm_content, consistently formatted. vCard QR Code Generator Put your contact details in a vCard QR code for business cards and badges: name, company, phone, e-mail, website and address. Vigenère Cipher Encrypt and decrypt text with the Vigenère cipher using a keyword. Keeps case, spaces and punctuation intact. Wi-Fi QR Code Generator Make a Wi-Fi QR code so guests can join your network by scanning — SSID, password and security type, printable PNG or SVG. XML URL Decode Decode a URL-encoded XML string back into readable XML. XML URL Encode URL-encode XML so it can be sent as a query-string parameter or form field without breaking the URL. YAML URL Decode Decode a URL-encoded YAML string back into readable YAML. YAML URL Encode URL-encode YAML so it can be sent as a query-string parameter or form field without breaking the URL. Zlib Compress Compress text with zlib (DEFLATE) and output Base64 or hex, compatible with gzcompress and zlib.compress. Zlib Decompress Inflate zlib or raw DEFLATE data from Base64 or hex and read the decompressed text.

Encode and decode data between representations

Data often has to change shape to travel safely: URLs cannot contain spaces, binary data cannot go into a JSON string, and compressed payloads are unreadable until decompressed. These encode and decode tools convert text and data between common representations, and back again, so you can build requests, read tokens and debug what a system actually sent.

Which encoder do you need?

  • URLs and query strings – URL encode and URL decode handle percent-encoding such as %20 for spaces; the URL parser splits a URL into its components.
  • HTML entities – HTML encode and HTML decode convert characters to and from entities such as &eacute;.
  • Bytes and characters – UTF-8 encode, string to hex and text to binary show the bytes behind text.
  • Compact encodings – Base32 (case-insensitive, used in TOTP secrets) and Base58 (no look-alike characters, used in cryptocurrency addresses and short IDs). Base64 has its own category.
  • Tokens – JWT decode shows the header and payload of a JSON Web Token, including expiry times.
  • Compression – gzip decompress and zlib tools read compressed payloads from logs and HTTP captures.
  • Fun and learning – the Morse code translator and ASCII code tools.

Encoding is not encryption

Everything in this category is reversible by anyone: encodings exist for compatibility, not secrecy. A Base32 string, a URL-encoded value or a JWT payload can be decoded without any key. JWTs are signed, which proves they were not tampered with, but their contents are readable, so never put secrets in them. For actual encryption, see the hash and cryptography category.

Choosing between Base32, Base58 and Base64

All three turn bytes into text. Base64 is the most compact and the most widely supported. Base32 uses only uppercase letters and digits, so it survives case-insensitive systems and is easy to read aloud, which is why authenticator apps use it for secrets. Base58 removes look-alike characters such as 0, O, I and l, which reduces typing mistakes in identifiers people copy by hand.

Common debugging workflows

  • A redirect or OAuth callback fails – decode the URL parameters to see what was actually sent; double encoding (%2520 instead of %20) is a frequent culprit.
  • An API rejects a token – decode the JWT and check the exp, aud and iss claims.
  • Strange characters in text – look at the hex bytes to tell a UTF-8 problem from a font problem; "é" instead of "é" is classic UTF-8 read as Latin-1.
  • Compressed log payloads – decompress gzip data, then format the JSON inside.

Decoding happens locally in your browser, which matters for tokens and URLs that may contain session data.

Frequently asked questions

Is encoding the same as encryption?
No. Encoding changes the representation of data and can be reversed by anyone without a key. Encryption requires a key to reverse and is meant to keep data secret.
When should I URL-encode a value?
Whenever you put user data or special characters into a URL, especially in query parameters. Spaces, ampersands, equals signs and non-ASCII characters must be percent-encoded.
Can anyone read a JWT?
Yes. The header and payload are only Base64URL-encoded, so anyone can decode them. The signature prevents tampering but does not hide the contents.
Why does my text show characters like é?
That usually means UTF-8 bytes were interpreted as Latin-1 or Windows-1252. Checking the hex bytes of the text helps confirm the encoding problem.