Sie KÖNNEN codieren +, müssen es aber nicht.
Zunächst müssen wir uns darauf einigen, dass dies mailtoein Beispiel für einen generischen URI ist, der in RFC 2396 angegeben ist . (Dies ist, was XHTML und HTML 4 verwenden).
Lassen Sie uns nun die Liste der reservierten Zeichen in RFC 2396 herausfinden.
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
URI unterteilt sich in absolute und relative:
URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
Und da Schema mailto:angegeben ist , ist dies ein absoluter URI:
absoluteURI = scheme ":" ( hier_part | opaque_part )
Und da beide Muster hier_partanfangen /, mailtoist das ein undurchsichtiger Teil.
opaque_part = uric_no_slash *uric
uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |
"&" | "=" | "+" | "$" | ","
uric = reserved | unreserved | escaped
Die Einschränkung besteht also darin, dass Sie /beim ersten Zeichen entkommen müssen , danach jedoch reservierte Zeichen einschließlich +und eingeben können @.
Hier ist ein weiterer RFC, der dies unterstützt. In den neuesten RFCs des Mailto-Schemas aus dem Jahr 2010 mit dem Namen RFC 6068 heißt es:
Software, die 'mailto'URIs erstellt, muss ebenfalls darauf achten, reservierte Zeichen zu codieren, die verwendet werden. HTML-Formulare sind eine Art von Software, die 'mailto'URIs erstellt . Gegenwärtige Implementierungen codieren ein Leerzeichen als '+', aber dies schafft Probleme, da ein solches '+'Stehen für ein Leerzeichen nicht von einem Real '+'in einem 'mailto'
URI unterschieden werden kann. Bei der Erzeugung von 'mailto'URIs MÜSSEN alle Leerzeichen wie folgt codiert werden
%20, und '+'Zeichen KÖNNEN wie folgt codiert werden %2B. Bitte beachten Sie, dass '+'
Zeichen häufig als Teil einer E-Mail-Adresse verwendet werden, um eine Unteradresse anzugeben, wie zum Beispiel in <bill+ietf@example.org>.