I looked into it some more
RFC3986 in section 2.5 includes
When a new URI scheme defines a component that represents textual
data consisting of characters from the Universal Character Set [UCS],
the data should first be encoded as octets according to the UTF-8
character encoding [STD63]; then only those octets that do not
correspond to characters in the unreserved set should be percent-
encoded. For example, the character A would be represented as "A",
the character LATIN CAPITAL LETTER A WITH GRAVE would be represented
as "%C3%80", and the character KATAKANA LETTER A would be represented
as "%E3%82%A2".
The above would imply that you cannot just encode the reserved characters only
In addition Wikepedia on percent encoding seems to support this as well see section 1.6
http://en.wikipedia.org/wiki/Percent-en ... t_standardIn addition the following implementations percent encode everything that is not unreserved (ie alphanumeric or the few puncuation marks).
LIBCurl -
http://curl.haxx.se/libcurl/c/curl_escape.htmlPHP -
http://www.php.net/manual/en/function.rawurlencode.phpPerl -
http://search.cpan.org/dist/URI/URI/Escape.pmJava -
http://docs.oracle.com/javase/7/docs/ap ... coder.htmlAlso as mentioned above, amazon and twitter allow require this type as does oath in RFC5849
http://tools.ietf.org/html/rfc5849#page-29Finally, the implementation is simpler and will handle utf8 encoded strings without modification
Based on above, I would recommend that POCO encode everything other than the unreserved characters