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