Indy 9
IdCoderUUE.pas
See Also, Classes, Variables, Constants
Unit: IdCoderUUE.pas

IdCoderUUE.pas contains classes, types, constants, and variables needed to implement coders that use the UUEncode and UUDecode algorithms.

The UUEncode algorithm is designed to encode binary data into a 7-bit textual representation, called UUEncode, as established by UUCP (Unix-to-Unix Copy Program).

UUEncode, like Base64, is an encoding mechanism designed to represent arbitrary sequences of byte data in a form that need not be humanly readable. UUEncode is often used to send EMail attachments in an environment that is not MIME-compliant, and also allows larger files to be divided into multi-part transmissions.

The UUEncode algorithm 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 8-bit 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 UUEncode alphabet.

UUEncode differs from Base64 encoding by utilizing a different coding table, or alphabet, to represent the encoded output values. The UUEncode Alphabet can represented by the following encodings and values:

    Value Encoding  Value Encoding
    0     `         33    @
    1     !         34    A
    2     "         35    B
    3     #         36    C
    4     $         37    D
    5     %         38    E
    6     &         39    f
    7     '         40    g
    8     '         41    h
    9     (         42    i
    10    )         43    j
    11    *         44    k
    12    +         45    l
    13    ,         46    m
    14    -         47    n
    15    .         48    o
    16    /         49    p
    17    0         50    q
    18    1         51    r
    19    2         52    s
    20    3         53    t
    21    4         54    u
    22    5         55    v
    23    6         56    w
    24    7         57    x
    25    8         58    y
    26    9         59    z
    27    :         60    [
    28    ;         61    
    29    <         62    ]
    30    =         63    ^
    31    >         64    _
    32    ?

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