Работа с Quoted-Printable строками на Ассемблере
25.04.2015 | Категория: Образ мышления: Assembler | Автор: ManHunter
Механизм конвертации Quoted-Printable предназначен для представления данных, в основном состоящих из байтов, соответствующих символам, имеющим изображение в символьном наборе ASCII. Если конвертируемые данные в основном представляют собой ASCII-текст, то конечная их форма остается узнаваемой и читаемой для человека. Как правило, такое кодирование используется при передаче бинарных данных или текстов в различных кодировках через электронную почту. Сообщение, полностью состоящее из ASCII-символов, также может быть конвертировано в Quoted-Printable, что гарантирует его содержимому целостность при прохождении через всякие шлюзы, в которых происходит языковая перекодировка символов или преобразование концов строк и т.д. В результате данного кодирования все байты сообщения будут иметь такие значения, которые в дальнейшем не будут модифицированы почтовым транспортом.Согласно спецификации, в Quoted-Printable байты должны быть представлены в соответствии со следующими правилами:
- Каждый байт, кроме тех, которые используются для обозначения конца строки, может быть представлен с помощью двух шестнадцатеричных цифр, предваряемых знаком "=". При написании шестнадцатеричных цифр с A по F должны использоваться заглавные буквы. Кроме тех случаев, когда нижеследующие правила позволяют альтернативное кодирование, данное правило является обязательным.
- Байты с десятичным значением с 33 по 60 и с 62 по 126 МОГУТ быть представлены ASCII-символами, соответствующими этим значениям (с '!' по '<' и с '>' по '~').
- Пробел в кодированной строке может быть заменен на символ подчеркивания "_".
- Байты со значениями 9 и 32 МОГУТ быть представлены как ASCII-символы "Табуляция" и "Пробел", но НЕ ДОЛЖНЫ быть представлены так в конце строки. Везде, где они представлены соответствующими ASCII-символами, за ними должен следовать символ, имеющий графическое изображение (печатный символ). В конце же строки символы табуляции и пробела должны быть представлены в соответствии с правилом #1, так как некоторые почтовые транспорты могут убирать пробелы в конце строки.
- Конец строки в тексте письма должен быть представлен (в соответствии с RFC 822) последовательностью CRLF. Так как в каноническом представлении текста не требуется визуального отображения символов конца строки, в Quoted-Printable не используется видимых символов для обозначения конца строки.
- В соответствии со спецификацией Quoted-Printable, длина строки не должна превышать 76 символов. В противном случае используется "мягкий" перевод строки, представимый знаком равенства. Например, если исходная строка имела вид:
Если программист в девять утра уже на работе, значит он там же и ночевал.
то в Quoted-Printable encoding он может быть представлена следующим образом:
Если программист в девять утра =
уже на работе, значит =
он там же и ночевал.
Это обеспечивает механизм восстановления исходной длины строки пользовательским почтовым агентом.
Читать статью целиком »
Просмотров: 4100 | Комментариев: 1