Sie KÖNNEN codieren +
, müssen es aber nicht.
Zunächst müssen wir uns darauf einigen, dass dies mailto
ein 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_part
anfangen /
, mailto
ist 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>
.