Ви МОЖЕТЕ кодувати +, але цього не потрібно.
По-перше, ми повинні погодитись, що 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>.