I am a little bit confused about the whole encoding issues related to HTML. I am not refering to the charset in the headers or encoding in the XML prologue. That I get. Lets me
URIs (like your mailto example) should be encoded according to RFC 3986, which specifies that spaces are to be encoded as %20.
The format of FORM data, on the other hand, is encoded as application/x-www-form-urlencoded according to the rules defined by the HTML specification. (See, for example, section 17.13.3.3 of the HTML 4.01 specification.) This specifies that spaces are to be translated as + signs.
Thus, while percent encoding is similar between URIs and form data, the space character is treated differently.