Potresti codificare +, ma non è necessario.
Innanzitutto, dobbiamo concordare che si mailtotratta di un esempio di URI generico, specificato da RFC 2396 . (Questo è ciò che usano XHTML e HTML 4).
Ora scopriamo l'elenco dei caratteri riservati in RFC 2396.
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
L'URI si divide in assoluto e relativo:
URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
E poiché lo schema mailto:è specificato, questo è un URI assoluto:
absoluteURI = scheme ":" ( hier_part | opaque_part )
E poiché entrambi i motivi per hier_partcominciare /, mailtoè una parte opaca.
opaque_part = uric_no_slash *uric
uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |
"&" | "=" | "+" | "$" | ","
uric = reserved | unreserved | escaped
Quindi la restrizione è che devi scappare /se si tratta del primo personaggio, ma dopo puoi inserire personaggi riservati tra cui +e @.
Ecco un altro RFC per supportare questo. Negli ultimi RFC dello schema mailto pubblicato nel 2010 chiamato RFC 6068 , si afferma:
'mailto'Allo stesso modo, il software che crea gli URI deve fare attenzione a codificare tutti i caratteri riservati utilizzati. I moduli HTML sono un tipo di software che crea 'mailto'URI. Le attuali implementazioni codificano uno spazio come '+', ma questo crea problemi perché una tale '+'posizione per uno spazio non può essere distinta da un reale '+'in un 'mailto'
URI. Quando si producono 'mailto'URI, tutti gli spazi DOVREBBERO essere codificati come
%20e i '+'caratteri POSSONO essere codificati come %2B. Si noti che i '+'
caratteri vengono spesso utilizzati come parte di un indirizzo e-mail per indicare un indirizzo secondario, come ad esempio in <bill+ietf@example.org>.