View source code
Display the source code in std/base64.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
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.
Module std.base64
Support for Base64 encoding and decoding.
This module provides two default implementations of Base64 encoding,
Base64
with a standard encoding alphabet, and a variant
Base64URL
that has a modified encoding alphabet designed to be
safe for embedding in URLs and filenames.
Both variants are implemented as instantiations of the template
Base64Impl
. Most users will not need to use this template
directly; however, it can be used to create customized 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
|
Base64Impl!('+','/')
|
Implementation of standard Base64 encoding. |
Base64URL
|
Base64Impl!('-','_')
|
Variation of Base64 encoding that is safe for use in URLs and filenames. |
Base64URLNoPadding
|
Base64Impl!('-','_',Base64.NoPadding)
|
Unpadded variation of Base64 encoding that is safe for use in URLs and filenames, as used in RFCs 4648 and 7515 (JWS/JWT/JWE). |
Authors
Masahiro Nakagawa, Daniel Murphy (Single value Encoder and Decoder)
License
Copyright © 1999-2024 by the D Language Foundation | Page generated by ddox.