shithub: purgatorio

ref: e2e50a8e5a74452672f9418bcdfe4de10f600ed0
dir: /man/2/encoding/

View raw version
.TH ENCODING 2
.SH NAME
Encoding: enc, dec \- encoding and decoding of byte arrays as text
.SH SYNOPSIS
.EX
include "encoding.m";
base16 := load Encoding Encoding->BASE16PATH;
base32 := load Encoding Encoding->BASE32PATH;
base32a := load Encoding Encoding->BASE32APATH;
base64 := load Encoding Encoding->BASE64PATH;

enc: fn(a: array of byte): string;
dec: fn(s: string): array of byte
.EE
.SH DESCRIPTION
.B Encoding
presents a common interface to several ways of encoding binary data (represented in arrays of bytes)
as printable text, to be included in essentially textual data (such as XML) or
sent through e-mail systems (as in MIME).
.PP
.B Enc
returns a string with a textual encoding of the binary data in
.IR a .
.PP
.B Dec
returns an array of bytes containing the binary data encoded in
.IR s .
.PP
Four encodings are provided, including all those defined by RFC3548;
load the one required from the given path.
.TP
.B BASE16PATH
Encode in base 16, representing each byte as a pair of hexadecimal digits, using upper-case letters (RFC3548).
.TP
.B BASE32PATH
Encode in base 32, encoding 5 bits per character, using upper-case letters, digits `2' to `7', padded with `=', as per RFC3548.
.TP
.B BASE32APATH
Alternative encoding in base 32, encoding 5 bits per character, using digits `2' to `7', letters (either case) except `l' and `o', not padded.
.TP
.B BASE64PATH
Encode in base 64, encoding 6 bits per character, using upper- and lower-case letters, digits, `+' and `/',
padded with `=' (RFC3548).
.PP
When decoding, white space and illegal characters are ignored;
base 16 and base 32 decoders are case-insensitive.
.SH SOURCE
.B /appl/lib/encoding
.SH SEE ALSO
.IR convcs (2)