Decode a Base64 list

Decode a Base64 list one line at a time: paste your Base64 strings and each line comes back as readable text. Output is decoded as UTF-8, and URL-safe input with -/_ characters is accepted automatically.

Input
Ready
Output
Live

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

  1. 1Paste your Base64 strings into the input panel, one per line.
  2. 2Leave Decode on Each line to decode every line on its own.
  3. 3Switch Decode to Whole input if the entire text is a single Base64 string.
  4. 4Read the decoded text in the output panel; non-Base64 lines are left as-is.
  5. 5Copy the result, or hit Download to save it as a plain text file.

Keyboard shortcuts

Drive ListShift without touching the mouse.

Shortcut Action
Ctrl ZUndo last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor
EscExit fullscreen
Ctrl KOpen the command palette to jump to any tool
Ctrl SSave current pipeline draft Plus
Ctrl PRun a saved pipeline Plus

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.

Input
aGVsbG8gd29ybGQ=
Y2Fmw6k=
MTIz
Output
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

FAQ

Does it decode accented or non-Latin text correctly?
Yes. Decoded bytes are read as UTF-8, so Y2Fmw6k= returns café and CJK or emoji values come back intact rather than as broken characters.
Can it read URL-safe Base64 and JWT segments?
Yes. Lines using - and _ instead of + and / are decoded automatically, and missing = padding is restored first, so base64url tokens work as pasted.
What happens to a line that is not valid Base64?
It is passed through unchanged. One malformed line does not clear the rest of the output, so you can decode a mixed list and still see which lines were plain text.
How do I encode text into Base64 in the first place?
Use Encode List as Base64. It encodes each line as UTF-8 and offers a URL-safe option that this decoder reads back without extra settings.
Is my data uploaded?
No. Decoding runs locally in your browser with JavaScript. Nothing is sent to a server, so encoded tokens stay on your machine.