Indy 9 | Content | Index | Reference

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.