[manual index][section index]


Encoding: enc, dec - encoding and decoding of byte arrays as text


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


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).

Enc returns a string with a textual encoding of the binary data in a.

Dec returns an array of bytes containing the binary data encoded in s.

Four encodings are provided, including all those defined by RFC3548; load the one required from the given path.

Encode in base 16, representing each byte as a pair of hexadecimal digits, using upper-case letters (RFC3548).
Encode in base 32, encoding 5 bits per character, using upper-case letters, digits `2' to `7', padded with `=', as per RFC3548.
Alternative encoding in base 32, encoding 5 bits per character, using digits `2' to `7', letters (either case) except `l' and `o', not padded.
Encode in base 64, encoding 6 bits per character, using upper- and lower-case letters, digits, `+' and `/', padded with `=' (RFC3548).

When decoding, white space and illegal characters are ignored; base 16 and base 32 decoders are case-insensitive.





ENCODING(2 ) Rev:  Thu Feb 15 14:43:26 GMT 2007