Base64 · The Julia Language
Description: Documentation for The Julia Language.

# Base64

The Base64 standard library implements encoding and decoding of the base64 format following the RFC 4648 standard, with the following important notes:

- Non-alphabet characters are ignored when decoding (see section 3.3 of RFC 4648).
- When decoding, if the data has padding outside of its specified location in the last 0-2 characters of the last group of four alphabet characters (e.g. `"A==="`, `"AAAA="`, `"A=AA"`), the data is rejected with `ArgumentError: malformed base64 sequence`.
- Padding is optional when decoding (`"AA"` and `"AA=="` are equally valid), and is always inserted when encoding.

The following alphabet is used:

Value | Encoding | Value | Encoding | Value | Encoding | Value | Encoding
--- | --- | --- | --- | --- | --- | --- | ---
0 | A | 17 | R | 34 | i | 51 | z
1 | B | 18 | S | 35 | j | 52 | 0
2 | C | 19 | T | 36 | k | 53 | 1
3 | D | 20 | U | 37 | l | 54 | 2
4 | E | 21 | V | 38 | m | 55 | 3
5 | F | 22 | W | 39 | n | 56 | 4
6 | G | 23 | X | 40 | o | 57 | 5
7 | H | 24 | Y | 41 | p | 58 | 6
8 | I | 25 | Z | 42 | q | 59 | 7
9 | J | 26 | a | 43 | r | 60 | 8
10 | K | 27 | b | 44 | s | 61 | 9
11 | L | 28 | c | 45 | t | 62 | +
12 | M | 29 | d | 46 | u | 63 | /
13 | N | 30 | e | 47 | v | padding | =
14 | O | 31 | f | 48 | w |  |
15 | P | 32 | g | 49 | x |  |
16 | Q | 33 | h | 50 | y |  |

## Encoding

`Base64.Base64EncodePipe` — Type

    Base64EncodePipe(ostream)

Return a new write-only I/O stream, which converts any bytes written to it into base64-encoded ASCII bytes written to `ostream`. Calling `close` on the `Base64EncodePipe` stream is necessary to complete the encoding (but does not close `ostream`).

Examples

    julia> io = IOBuffer();

    julia> iob64_encode = Base64EncodePipe(io);

    julia> write(iob64_encode, "Hello!")
    6

    julia> close(iob64_encode);

    julia> str = takestring!(io)
    "SGVsbG8h"

    julia> String(base64decode(str))
    "Hello!"

source
`Base64.base64encode` — Function

    base64encode(writefunc, args...; context=nothing)
    base64encode(args...; context=nothing)

Given a `write`-like function `writefunc`, which takes an I/O stream as its first argument, `base64encode(writefunc, args...)` calls `writefunc` to write `args...` to a base64-encoded string, and returns the string. `base64encode(args...)` is equivalent to `base64encode(write, args...)`: it converts its arguments into bytes using the standard `write` functions and returns the base64-encoded string.

The optional keyword argument `context` can be set to `:key=>value` pair or an `IO` or `IOContext` object whose attributes are used for the I/O stream passed to `writefunc` or `write`.

See also `base64decode`.

source
`Base64.stringmime` — Function

    stringmime(mime, x; context=nothing)

Return an `AbstractString` containing the representation of `x` in the requested `mime` type. This is similar to `repr(mime, x)` except that binary data is base64-encoded as an ASCII string.

The optional keyword argument `context` can be set to `:key=>value` pair or an `IO` or `IOContext` object whose attributes are used for the I/O stream passed to `show`.

source

## Decoding

`Base64.Base64DecodePipe` — Type

    Base64DecodePipe(istream)

Return a new read-only I/O stream, which decodes base64-encoded data read from `istream`.

Examples

    julia> io = IOBuffer();

    julia> iob64_decode = Base64DecodePipe(io);

    julia> write(io, "SGVsbG8h")
    8

    julia> seekstart(io);

    julia> String(read(iob64_decode))
    "Hello!"

source
`Base64.base64decode` — Function

    base64decode(string)

Decode the base64-encoded `string` and return a `Vector{UInt8}` of the decoded bytes.

See also `base64encode`.

Examples

    julia> b = base64decode("SGVsbG8h")
    6-element Vector{UInt8}:
     0x48
     0x65
     0x6c
     0x6c
     0x6f
     0x21

    julia> String(b)
    "Hello!"

source

Theme

This document was generated with Documenter.jl version 1.17.0 on Saturday 29 August 2026. Using Julia version 1.14.0-DEV.3067.