Converters

Text Encoding Detector

Auto-detect whether a string is Base64, URL-encoded, hex, or plain text — and decode it.

Detection Results

Character set

Text looks garbled, like é or Привет? Paste it in the box above and the repair shows here. To find the encoding of a file, choose or drop it below.

or drop it here. The file is read in your browser and never uploaded.

About Encoding Detector

Takes an unlabeled string of unknown encoding and attempts to identify whether it's Base64, URL-encoded, hex, or another common encoding, then decodes it automatically. Useful when you're handed a string with no context about how it was encoded — pulled from a log file, a URL parameter, an API payload, or a support ticket. Detection isn't always unambiguous, since some strings are technically valid under more than one encoding scheme, so results should be treated as a best-guess starting point.

Why detection can be ambiguous: a string like SGVsbG8 is valid Base64, but a short enough hex or URL-encoded string can occasionally also pass basic format validation without being the "real" encoding. Longer strings are far more reliable to auto-detect than short ones — under ~12 characters, cross-check the result manually. If the decoded output is itself another encoded string (double-encoding is common in URL query parameters and some legacy APIs), run the output back through the tool a second time.

📖 Read more in our Knowledge Base →

Detects

Base64 (standard)
Base64url (URL-safe)
URL percent-encoding
Hex string (0-9, a-f)
HTML entities (&)
Quoted-printable
Character set (garbled text, files)
Plain text

Supported encodings

Unicode: UTF-8, UTF-16LE/BE

Cyrillic: CP-1251, KOI8-R, KOI8-U, CP-866 (DOS), CP-855, ISO-8859-5, MacCyrillic, MIK

Other single-byte: CP-1250, CP-1252, CP-1253, CP-1254, CP-1255, CP-1256, CP-1257, CP-874, ISO-8859-2, ISO-8859-7, CP-437, Mac Roman

Chinese, Japanese, Korean: GB2312/GBK, HZ, Big5, Shift_JIS, EUC-JP, ISO-2022-JP, EUC-KR

Transport encodings: Base64, Base64url, URL, Quoted-printable, Hex, HTML entities

Typing mistakes: Wrong keyboard layout (RU ↔ EN), translit, 7-bit KOI8

Related Tools

How to recognize common encodings by eye

EncodingTell-tale signsExample
Base64A–Z, a–z, 0–9, + and /; length a multiple of 4; may end in = or ==SGVsbG8gd29ybGQ=
Base64urlSame, but - and _ instead of + and /, padding often droppedeyJhbGciOiJIUzI1NiJ9
URL (percent) encoding% followed by two hex digits; + for spaces in query stringshello%20world%21
HexOnly 0–9 and a–f, even length48656c6c6f

Layered encodings

Real-world strings are often encoded more than once — a Base64 blob inside a URL parameter becomes percent-encoded, and a JWT is three Base64url parts joined by dots. Decode one layer at a time and run the output through the detector again until you reach readable text. For tokens, the JWT decoder splits and decodes all three parts at once.

Garbled text is a different problem

If text is readable but shows sequences like é instead of é, or ’ instead of an apostrophe, the issue is a character-set mismatch, not an encoding layer: UTF-8 bytes were read as Windows-1252 or ISO-8859-1. The fix is on the side that displays or stores the text — declare charset=utf-8 in the HTTP Content-Type header or HTML <meta>, and make sure the database connection uses UTF-8. You can inspect a site's response headers with the HTTP headers checker.

Short strings are ambiguous

A short string can be valid in several formats at once — cafe is valid hex and valid Base64. The longer the sample, the more reliable detection becomes; if you know where the string came from, that context usually settles it.

To encode or decode a known format directly, use the Base64 or URL encoder/decoder.