Телекоммуникационные технологии. Том 1




Транспортное кодирование Base (Content-Transfer-Encoding) - часть 2


Код

символа

(6 бит)

ASCII

символ

Код

символа

(6 бит)

ASCII

символ

Код

символа

(6 бит)

ASCII

символ

Код

символа

(6 бит)

ASCII

символ

0 A 10 Q 20 g 30 w
1 B 11 R 21 h 31 x
2 C 12 S 22 i 32 y
3 D 13 T 23 j 33 z
4 E 14 U 24 k 34 0
5 F 15 V 25 l 35 1
6 G 16 W 26 m 36 2
7 H 17 X 27 n 37 3
8 I 18 Y 28 o 38 4
9 J 19 Z 29 p 39 5
A K 1A a 2A q 3A 6
B L 1B b 2B r 3B 7
C M 1C c 2C s 3C 8
D N 1D d 2D t 3D 9
E O 1E e 2E u 3E +
F P 1F f 2F v 3F /

Закодированный выходной поток должен иметь формат последовательности из одной или более строк длиной не более 76 символов каждая. Все разрывы строк или другие символы, не содержащиеся в таблице .1. должны игнорироваться декодирующим программным обеспечением. В данных, представленных в кодах base64, символы отличные от тех, что представлены в таблице .1., разрывы строк и другие пробелы обычно указывает на ошибку передачи, которая вызовет предупреждение или даже выбрасывание сообщения.

Если число бит в группе меньше 24, используется специальная обработка. Неполная битовая группа дополняется нулями справа до 24. Заполнение в конце информационной группы осуществляется с использованием символа "=". Так как последовательность кодов base64 представляет собой поток октетов, возможны следующие случаи:

  1. последний блок кодируемых данных кратен 24 битам; здесь, завершающий выходной блок будет содержать в себе 4 символа и никакого заполнителя,
  2. завершающий блок кодируемых данных содержит ровно 8 бит; здесь, оконечный выходной блок будет содержать два символа, за которыми будут следовать два символа заполнителя, или
  3. последний блок кодируемой информации содержит ровно 16 бит; здесь, оконечный блок на выходе будет иметь три символа плюс один символ заполнителя "=".

Так как "=" используется для дополнения, его наличие указывает на то, что достигнут конец массива данных.Такая уверенность не возможна, когда число переданных октетов кратно трем и нет ни одного символа "=". Любые символы, не входящие в алфавит base64-должны игнорироваться.

Следует позаботиться о том, чтобы использовались корректные октеты в качестве разделителей строк при работе с base64. В частности, разрывы строк должны быть преобразованы в последовательности CRLF до выполнения кодирования base64.




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