ENCODING(2)                                           ENCODING(2)

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

     SYNOPSIS
          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

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

          BASE16PATH
               Encode in base 16, representing each byte as a pair of
               hexadecimal digits, using upper-case letters (RFC3548).

          BASE32PATH
               Encode in base 32, encoding 5 bits per character, using
               upper-case letters, digits `2' to `7', padded with `=',
               as per RFC3548.

          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.

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

     Page 1                       Plan 9            (printed 11/23/24)

     ENCODING(2)                                           ENCODING(2)

     SOURCE
          /appl/lib/encoding

     SEE ALSO
          convcs(2)

     Page 2                       Plan 9            (printed 11/23/24)