MOŻESZ kodować +
, ale nie musisz.
Po pierwsze, musimy się zgodzić, że mailto
jest to przykład ogólnego identyfikatora URI, określonego przez RFC 2396 . (Właśnie tego używają XHTML i HTML 4).
Teraz poznajmy listę zarezerwowanych znaków w RFC 2396.
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
URI dzieli się na bezwzględne i względne:
URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
A ponieważ mailto:
określono schemat, jest to bezwzględny identyfikator URI:
absoluteURI = scheme ":" ( hier_part | opaque_part )
A od obu wzorów na hier_part
początek /
, mailto
jest nieprzezroczysta część.
opaque_part = uric_no_slash *uric
uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |
"&" | "=" | "+" | "$" | ","
uric = reserved | unreserved | escaped
Ograniczeniem jest to, że musisz uciec, /
jeśli chodzi o pierwszą postać, ale potem możesz wstawić zastrzeżone znaki, w tym +
i @
.
Oto kolejny RFC, który to obsługuje. W najnowszej wersji RFC programu mailto opublikowanej w 2010 r. O nazwie RFC 6068 napisano:
Oprogramowanie tworzące 'mailto'
identyfikatory URI również musi ostrożnie kodować wszelkie używane znaki zastrzeżone. Formularze HTML to jeden rodzaj oprogramowania, które tworzy 'mailto'
identyfikatory URI. Obecne implementacje kodują spację jako '+'
, ale stwarza to problemy, ponieważ takiej pozycji '+'
dla spacji nie można odróżnić od rzeczywistej '+'
w 'mailto'
URI. Podczas tworzenia 'mailto'
identyfikatorów URI wszystkie spacje POWINNY być zakodowane jako
%20
, a '+'
znaki MUSZĄ być zakodowane jako %2B
. Należy pamiętać, że '+'
znaki są często używane jako część adresu e-mail do wskazania podadresu, na przykład w <bill+ietf@example.org>
.