Turn Base64 strings back into readable text
Decode a Base64 list when you have a column of encoded tokens, config values, or JWT segments and want the plain text behind each one. Every line is decoded on its own, so an encoded list comes back as a readable list of the same length.
Bytes are interpreted as UTF-8, so Y2Fmw6k= decodes back to café rather than two stray characters. URL-safe input is handled without a toggle: - and _ are mapped back to + and /, and missing = padding is restored before decoding.
If a line is not valid Base64, it is passed through unchanged rather than replaced with an error, so one bad line does not wipe the rest of your output. It all runs in your browser. To encode in the first place, use Encode List as Base64.
How to use decode a base64 list
- 1Paste your Base64 strings into the input panel, one per line.
- 2Leave Decode on Each line to decode every line on its own.
- 3Switch Decode to Whole input if the entire text is a single Base64 string.
- 4Read the decoded text in the output panel; non-Base64 lines are left as-is.
- 5Copy the result, or hit Download to save it as a plain text file.
Keyboard shortcuts
Drive ListShift without touching the mouse.
What the Base64 decoder does
Five concrete behaviours behind the decoding.
Output is decoded as UTF-8
Decoded bytes are read back as UTF-8, so Y2Fmw6k= returns café, not the two-character mojibake a Latin-1 decode would give. Multi-byte characters are reassembled correctly.
URL-safe input is accepted automatically
Lines using the base64url alphabet (- and _ instead of + and /) decode without any toggle. Missing = padding is restored before decoding, so JWT segments work as pasted.
Invalid lines pass through unchanged
A line that is not valid Base64 is returned as-is instead of producing an error or an empty line. One malformed value does not blank out the rest of the list.
Each line decodes independently
In Each line mode the output keeps one item per line, matching the input count. Whole input mode instead treats the entire textarea as a single Base64 string.
Blank lines stay blank
Empty input lines are left empty rather than decoded, so the output lines up with the input for easy side-by-side comparison.
Worked example
Three Base64 strings decoded back to text; Y2Fmw6k= restores the accented café via UTF-8.
aGVsbG8gd29ybGQ= Y2Fmw6k= MTIz
hello world café 123
Settings reference
How each option changes the output, using the sample list above as the input.
| Setting | What it does | Effect on the sample |
|---|---|---|
| Decode: Each line (default) | Decodes every line on its own | Three Base64 lines give three text lines |
| Decode: Whole input | Treats the entire text as one Base64 string | Use when the whole paste is a single token |
| URL-safe input (automatic) | Maps -/_ back to +/ and restores = padding | base64url and JWT segments decode as-is |
| UTF-8 handling (automatic) | Reads decoded bytes as UTF-8 | Y2Fmw6k= decodes to café |
| Invalid line (automatic) | Passed through unchanged | A non-Base64 line is kept, not errored |