54 lines · 1.7 KB · Text
RawDownload
= 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  ofencoding  binary  data  (represented  in  arrays of bytes) asprintable 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 binarydata in a. Dec returns an array of  bytes  containing  the  binary  dataencoded in s. Four  encodings  are provided, including all those defined byRFC3548; 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   areignored; base 16 and base 32 decoders are case-insensitive. == source/appl/lib/encoding == see ALSOconvcs(2)