Indy 9 | Content | Index | Reference

IdCoderXXE.pas
See Also, Classes, Variables, Constants
Unit: IdCoderXXE.pas

IdCoderXXE.pas contains classes, constants, and variables used to implement encoders and decoders for the XXEncode encoding scheme. The XXEncode encoding scheme is used to convert binary data into a 7-bit textual representation, and is very simular to the UUEncode encoding scheme.

XXEncode, like Base64, is an encoding mechanism designed to represent arbitrary sequences of byte data in a form that need not be humanly readable. XXEncode was designed as a replacement for an earlier version of UUEncode, which contained an encoding error. XXEncode is little used since the UUEncode alphabet has been enhanced.

XXEncode encoding represents 24-bit groups of input as output strings of 4 encoded characters. Proceeding from left to right, a 24-bit input group is formed by concatenating 3 8bit input groups. These 24 bits are then treated as 4 concatenated 6-bit groups, each of which is translated into a single digit in the XXEncode alphabet.

XXEncode differs from Base64 and UUEncode in that it utilizes a different coding table, or alphabet, to represent the encoded output values. The XXEncode Alphabet can represented by the following encodings and values:

          Value Encoding  Value Encoding
          0     +         32    U
          1     -         33    V
          2     0         34    W
          3     1         35    X
          4     2         36    Y
          5     3         37    Z
          6     4         38    a
          7     5         39    b
          8     6         40    c
          9     7         41    d
          10    8         42    e
          11    9         43    f
          12    A         44    g
          13    B         45    h
          14    C         46    i
          15    D         47    j
          16    E         48    k
          17    F         49    l
          18    G         50    m
          19    H         51    n
          20    I         52    o
          21    J         53    p
          22    K         54    q
          23    L         55    r
          24    M         56    s
          25    N         57    t
          26    O         58    u
          27    P         59    v
          28    Q         60    w
          29    R         61    x
          30    S         62    y
          31    T         63    z

Created with Doc-O-Matic 2 donated to Project JEDI. Commercial license available from the Doc-O-Matic site.