
произвольных байт в заголовке письма. Однако если необходимо закодировать
один байт, для этого понадобится четыре символа, что менее эффективно,
нежели рассмотренное выше Q кодирование. Так же отметим, что в Q
кодировании «нормальные» символы (US-ASCII) передаются без кодирования (1
байт – 1 символ) а метод кодирования BASE64 будет кодировать в том числе и те
байты, которые можно передать и без кодирования.
Сравним эффективность методов кодирования на примерах:
• Необходимо передать 1000 произвольных байтов.
o Q кодирование – 3000 знаков
o B кодирование – 1336 знаков
• Необходимо передать 1 произвольный байт.
o Q кодирование – 3 знака
o B кодирование – 4 знака
• Необходимо передать 2 произвольных байта.
o Q кодирование – 6 знака
o B кодирование – 4 знака
• Необходимо передать 3 произвольных байта.
o Q кодирование – 9 знаков
o B кодирование – 4 знака
• Необходимо передать 4 произвольных байта.
o Q кодирование – 12 знаков
o B кодирование – 8 знаков
• Необходимо передать 10 знаков, из которых два произвольных, остальные
- ASCII
o Q кодирование – 14 знаков
o B кодирование – 16 знаков
• Необходимо передать 100 знаков, один из которых произвольный,
остальные - ASCII
o Q кодирование – 102 знаков
o B кодирование – 136 знаков
• Необходимо передать 1000 знаков, 5 из которых произвольные, остальные
- ASCII
o Q кодирование – 1010 знаков
o B кодирование – 1336 знаков
Делаем выводы:
•
При необходимости передать длинные последовательности
символов, в которых редко встречаются символы, не принадлежащие
набору US-ASCII, эффективно использовать Q кодирование
•
При необходимости передать длинные последовательности
произвольных символов, эффективно использовать B кодирование
•
В промежуточных случаях можно рассчитать, сколько символов
в том или ином способе кодирования будет задействовано и
воспользоваться более эффективным кодированием.
Теперь, когда методы кодирования рассмотрены, отметим, что символьный
набор (charset) представляет собой ASCII текст, зарегистрированный в IANA,
например: KOI-8R, Windows-1251 и т.д. Теперь разберем несколько примеров:
1. Необходимо передать в заголовке строку
To: Дима <dima@dima.com>