인코딩 +
할 수도 있지만 반드시 할 필요는 없습니다.
먼저 RFC 2396에mailto
지정된 일반 URI의 예라는 것에 동의해야합니다 . (이것은 XHTML과 HTML 4가 사용하는 것입니다).
이제 RFC 2396에서 예약 문자 목록을 찾아 보겠습니다.
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
URI는 절대 및 상대로 분할됩니다.
URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
그리고 scheme mailto:
이 지정되었으므로 이것은 절대 URI입니다.
absoluteURI = scheme ":" ( hier_part | opaque_part )
그리고 모두 패턴부터 hier_part
시작 /
, mailto
불투명 한 부분이다.
opaque_part = uric_no_slash *uric
uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" |
"&" | "=" | "+" | "$" | ","
uric = reserved | unreserved | escaped
따라서 /
첫 번째 문자의 경우 이스케이프 해야하지만 이후에는 +
and를 포함한 예약 문자를 넣을 수 있습니다 @
.
이를 지원하기위한 다른 RFC가 있습니다. RFC 6068 이라는 2010 년에 게시 된 mailto 체계의 최신 RFC에서 다음과 같이 말합니다.
'mailto'
마찬가지로 URI를 생성하는 소프트웨어 는 사용 된 예약 문자를 인코딩 할 때주의해야합니다. HTML 양식은 'mailto'
URI 를 생성하는 일종의 소프트웨어입니다 . 현재 구현은 공백을로 인코딩 '+'
하지만 '+'
공백에 대한 이러한 순위 '+'
는 'mailto'
URI 에서 실제와 구별 될 수 없기 때문에 문제가 발생 합니다. 'mailto'
URI를 생성 할 때 모든 공백은로 인코딩해야 %20
하고 '+'
문자 는로 인코딩해야
합니다 (MAY) %2B
. 주의하시기 바랍니다 '+'
문자가 자주 예를 들면 같은 하위 주소를 표시하기 위해 이메일 주소의 일부로서 사용된다 <bill+ietf@example.org>
.