Ви МОЖЕТЕ кодувати +
, але цього не потрібно.
По-перше, ми повинні погодитись, що mailto
це приклад загального URI, визначеного RFC 2396 . (Це те, що використовують XHTML та HTML 4).
Тепер давайте дізнаємось список зарезервованих символів в RFC 2396.
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
URI розбивається на абсолютний та відносний:
URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
А оскільки mailto:
вказана схема , це абсолютний URI:
absoluteURI = scheme ":" ( hier_part | opaque_part )
А так як моделі для hier_part
запуску з /
, mailto
непрозора частина.
opaque_part = uric_no_slash *uric
uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |
"&" | "=" | "+" | "$" | ","
uric = reserved | unreserved | escaped
Отже, обмеження полягає в тому, що вам потрібно втекти, /
якщо мова йде про першого символу, але після цього ви можете поставити зарезервовані символи, включаючи +
і @
.
Ось ще одна RFC на підтримку цього. В останніх схемах RFC поштового зв’язку , опублікованих у 2010 році під назвою RFC 6068 , написано:
Програмне забезпечення, що створює 'mailto'
URI, також має бути обережним для кодування будь-яких зарезервованих символів, які використовуються. Форми HTML - це різновид програмного забезпечення, яке створює 'mailto'
URI. Поточні реалізації кодують простір як '+'
, але це створює проблеми, оскільки таке '+'
стояння для простору неможливо відрізнити від реального '+'
в 'mailto'
URI. При створенні 'mailto'
URI всі пробіли ДОЛЖЕН бути кодовані як
%20
, а '+'
символи МОЖУТЬ бути кодовані %2B
. Зверніть увагу, що '+'
символи часто використовуються як частина адреси електронної пошти для вказівки суб-адреси, наприклад, у <bill+ietf@example.org>
.