Почему «-» (дефис) является уникальным ограничением ASCII для совместимости с электронной почтой? - PullRequest
0 голосов
/ 04 июня 2018

Я читал это предложение для Base91 , (с добавленным мною полужирным форматированием):

Вся электронная почта на основе SMTP может обеспечить совместимость с электронной почтой.почта.Так называемая совместимость с электронной почтой заключается в преобразовании произвольных 8-битных строк данных или данных произвольного потока битов, передаваемых электронной почтой, в символьные строки ограниченного ASCII.Основным ограничением последнего является то, что:
(a) символы должны быть напечатаны;
(b) символы не являются управляющими символами или «-» (дефис) .
Всего существует 94 таких символа ASCII, их соответствующее цифровое кодирование представляет собой целые числа в диапазоне от 32 до 126 , за исключением 45 .Электронная почта, написанная этими символами ASCII, совместима со стандартом SMTP в Интернете и может передаваться практически во всех системах электронной почты.

Примечание: 45 - это значение ASCII для дефиса.
Примечание. Я только что выяснил, что это предложение исходит из патентов в Китае (ZL00112884.1) и US (US6859151B2) .

Но я также прочитал RFC 5321 относительно SMTP и не смог найти ничего, что сделало бы символ дефиса исключительным ограничением из диапазона ASCII для печати. ​​

Примечание: для печатиДиапазон ASCII:
! "# $% & '() * +, -. / 0123456789:; <=>? @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] ^ _` abcdefghijklmnopqrstuvwxyz {|} ~

Почему в предложении / патенте Base91 утверждается, что «-» (дефис) является единственным ограничением совместимости с электронной почтой?

Ответы [ 2 ]

0 голосов
/ 20 июня 2018

Я подозреваю, что это просто для того, чтобы сделать base91 надежным в отношении того, что люди иногда делают с текстом, например, копирование / вставка в документы и т. Д. Не имеет смысла ожидать, что это случится часто, но некоторые текстовые процессоры и т. Д.будет использовать тире в качестве точек переноса.

0 голосов
/ 19 июня 2018

Похоже, что дефис используется в качестве управляющего / маркерного символа в многострочных SMTP-сообщениях.

RFC5321 4.2.1 Серьезность и теория кода ответа :

Формат многострочных ответов требует, чтобы каждая строка, кроме последней, начиналась с кода ответа, после которого следовал бы дефис, "-" (также известный как минус), за которым следовал текст.Последняя строка начинается с кода ответа, за которым сразу следует <SP>, необязательно некоторый текст и <CRLF>.Как отмечалось выше, серверам СЛЕДУЕТ отправлять <SP>, если последующий текст не отправляется, но клиенты ДОЛЖНЫ быть готовы к тому, что он будет пропущен.

Предложение Base91 использует SMTP в качестве примера обоих своих приложений.и ограничения.Как вы заявляете, изначально он хотел использовать 94 символа, но из-за различных стандартов (например, SMTP) он исключает часто используемые псевдоуправляющие символы ("-", ".", "=").Он использует SMTP, потому что демонстрирует практичность кодирования Base91 (например, кодирование 13 битов данных на символ, а не 6 битов с помощью Base64 может значительно уменьшить количество битов, необходимых для кодирования любого данного сообщения) в дополнение к признанию того, что в нем используются дефисыпоскольку управляющий символ не вызовет неоднозначности в тексте Base91.

Base91 может закодировать любой текст. В документе утверждается, что он отображает 13 бит данных в два печатных символа ASCII.Base91 может кодировать любой номер, любой символ (включая символы новой строки), аналогично тому, как Base64 может кодировать любой символ.Аналогично, это отображение можно изменить на обратное, чтобы получить исходный вывод из кодировки Base91.

Вот пример многострочного кода ответа SMTP:

  250-First line
  250-Second line
  250-234 Text beginning with numbers
  250 The last line

В этом примере он преобразует большое многострочное сообщение SMTP, которое содержит и дефисы, и новые строки, и числа, в некоторую форму в кодировке Base91.Если эта закодированная форма содержит псевдо-контрольные символы, такие как дефис, SMTP-клиенты могут интерпретировать закодированные в Base91 данные как искаженные данные SMTP.Цель удаления таких символов, как дефисы, из набора символов Base91: , а не из-за недостатков SMTP или спецификаций самого SMTP, именно с клиентами, которые используют и анализируют данные SMTP, и гарантируя, что клиенты по-прежнему могут работать правильно.принимать данные Base91 без риска их неправильного разбора как данных SMTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...