|
Internet Direct (Indy) Version 9.0.1 Beta
|
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