12 Base 64: Encoding and Decoding

▼ |  | Net: Networking Libraries

1 | URLs and HTTP
2 | URI Codec: Encoding and Decoding URIs
3 | Web Socket
4 | FTP: Client
5 | Send URL: Opening a Web Browser
6 | SMTP: Sending E-Mail
7 | sendmail: Sending E-Mail
8 | Headers: Parsing and Constructing
9 | IMAP: Reading Mail
10 | POP3: Reading Mail
11 | MIME: Decoding Internet Data
12 | Base 64: Encoding and Decoding
13 | Quoted-Printable: Encoding and Decoding
14 | DNS: Domain Name Service Queries
15 | NNTP: Newsgroup Protocol
16 | TCP: Unit and Signature
17 | TCP Redirect: tcp^ via Channels
18 | SSL Unit: tcp^ via SSL
19 | CGI Scripts
20 | Cookie: HTTP Client Storage
| Bibliography
| Index

► | 12 | Base 64: Encoding and Decoding

12.1 | Functions
12.2 | Base64 Unit
12.3 | Base64 Signature

On this page:

12.1`` Functions
base64-encode
base64-decode
base64-encode-stream
base64-decode-stream
12.2`` Base64 Unit
base64@
12.3`` Base64 Signature
base64^

top ← prev up next →

### 12`` Base 64: Encoding and Decoding

(require net/base64)

The net/base64 library provides utilities for Base 64 (MIME-standard) encoding and decoding.

#### 12.1`` Functions

> procedure (base64-encode bstr [newline-bstr]) → bytes?
> bstr : bytes?
> newline-bstr : bytes? = #"\r\n"

Consumes a byte string and returns its Base 64 encoding as a new byte string. The returned string is broken into 72-byte lines separated by newline-bstr, which defaults to a CRLF combination, and the result always ends with a newline-bstr unless the input is empty.

> procedure (base64-decode bstr) → bytes?
> bstr : bytes?

Consumes a byte string and returns its Base 64 decoding as a new byte string.

> procedure (base64-encode-stream in out [newline-bstr]) → void?
> in : input-port?
> out : output-port?
> newline-bstr : bytes? = #"\n"

Reads bytes from in and writes the encoded result to out, breaking the output into 72-character lines separated by newline-bstr, and ending with newline-bstr unless the input stream is empty. Note that the default newline-bstr is just #"\n", not #"\r\n". The procedure returns when it encounters an end-of-file from in.

> procedure (base64-decode-stream in out) → void?
> in : input-port?
> out : output-port?

Reads a Base 64 encoding from in and writes the decoded result to out. The procedure returns when it encounters an end-of-file or Base 64 terminator = from in.

#### 12.2`` Base64 Unit

> > > base64@ and base64^ are deprecated. They exist for backward-compatibility and will likely be removed in the future. New code should use the net/base64 module.

(require net/base64-unit)

> value base64@ : unit?

Imports nothing, exports base64^.

#### 12.3`` Base64 Signature

(require net/base64-sig)

> signature base64^ : signature

Includes everything exported by the net/base64 module.

top ← prev up next →