View source code
Display the source code in std/base64.d from which this page was generated on
github.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Page wiki
View or edit the community-maintained wiki page associated with this page.
Module std.base64
Support for Base64
encoding and decoding.
This module provides two default implementations of Base64
encoding,
with a standard encoding alphabet, and a variant
Base64
that has a modified encoding alphabet designed to be
safe for embedding in URLs and filenames.
Base64URL
Both variants are implemented as instantiations of the template
. Most users will not need to use this template
directly; however, it can be used to create customized Base64Impl
Base64
encodings,
such as one that omits padding characters, or one that is safe to embed
inside a regular expression.
Example
ubyte[] data = [0x14, 0xfb, 0x9c, 0x03, 0xd9, 0x7e]; const(char)[] encoded = Base64.encode(data); assert(encoded == "FPucA9l+"); ubyte[] decoded = Base64.decode("FPucA9l+"); assert(decoded == [0x14, 0xfb, 0x9c, 0x03, 0xd9, 0x7e]);
The range API is supported for both encoding and decoding:
Example
// Create MIME Base64 with CRLF, per line 76. File f = File("./text.txt", "r"); scope(exit) f.close(); Appender!string mime64 = appender!string; foreach (encoded; Base64.encoder(f.byChunk(57))) { mime64.put(encoded); mime64.put("\r\n"); } writeln(mime64.data);
References
Classes
Name | Description |
---|---|
Base64Exception
|
Exception thrown upon encountering Base64 encoding or decoding errors.
|
Templates
Name | Description |
---|---|
Base64Impl
|
Template for implementing Base64 encoding and decoding.
|
Aliases
Name | Type | Description |
---|---|---|
Base64
|
Implementation of standard Base64 encoding. | |
Base64URL
|
Variation of Base64 encoding that is safe for use in URLs and filenames.
|
Authors
Masahiro Nakagawa, Daniel Murphy (Single value Encoder and Decoder)