MOŻESZ kodować +, ale nie musisz.
Po pierwsze, musimy się zgodzić, że mailtojest 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_partpoczątek /, mailtojest 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>.