Интернет-решения от доктора Боба




UUEncode и UUDecode


Необходимость кодирование файлов при передаче является то, что ф файле могут находиться любые двоичные данные, для это файл преобразовывается в "читаемую" или "печатаемую" форму в набор из 64 символов: [`!"#$%&'()*+,-./0123456789:;<=?@ABC...XYZ[\]^_], что бы кодированный фал прошел через различные сети и почтовые шлюзы. Эти 64 печатных символа представлены в следующей таблице.

Набор символов UUEncode

0 `

8 (

16 0

24 8

32 @

40 H

48 P

56 X

1 !

9 )

17 1

25 9

33 A

41 I

49 Q

57 Y

2 "

10 *

18 2

26 :

34 B

42 J

50 R

58 Z

3 #

11 +

19 3

27 ;

35 C

43 K

51 S

59 [

4 $

12 ,

20 4

28 <

36 D

44 L

52 T

60 \

5 %

13 -

21 5

29 =

37 E

45 M

53 U

61 ]

6 &

14 .

22 6

30 >

38 F

46 N

54 V

62 ^

7 '

15 /

23 7

31 ?

39 G

47 O

55 W

63 _

Алгоритм выдает файл состоящий из строки заголовка, за ней несколько кодированных строк и в конце завершающая строка.

Любые строки до строки заголовка или после завершающей строки игнорируются (так как они не содержат специальных ключевых слов "begin" или "end", которые однозначно определяют заголовок и завершающую строку).

Строка заголовка начинается с ключевого слова "begin", за который следует режим файла (четыре восьмеричных цифры) и имя файла, разделенные пробелом.

Завершающая строка начинается с ключевого слова "end"

Кодированные строки располагаются между заголовком и завершающей строкой, и могут содержать максимум 61 символ, первый символ указывает размер строки и максимум 60 символов сама строка.

Первый символ строки содержит длину строки из набора символов UUEncode, для получения подлинной длины строки из кода символов вычитается 32 ($20).

Строки данных могут содержать максимум 60 символов, это означает, что первый символ строки (длина) может быть 'M' (60 символ набора символов UUEncode).




Содержание  Назад  Вперед