Indy 9
|
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 ?