c# - .NET UrlEncode not working? -
according http://www.w3schools.com/tags/ref_urlencode.asp when requests submitted url encoded, example space gets transformed %20. far good.
i have problem !. submitting in form converts %21 should. httputility.urlencode (or webutility partner) or uri.escapedatastring return ! expected behaviour? how should encode input c# converts proper values?
an exclamation mark considered url-safe ascii character , therefore not percentage encoded.
from msdn
the urlencode method url-encodes character not in set of ascii characters considered url-safe. spaces encoded ascii "+" character. url-safe ascii characters include asci characters (a z , z), numerals (0 9), , punctuation marks. following table lists punctuation marks considered url-safe ascii characters.
the table contains - _ . ! * ( )
update
according this answer, uri.escapedatastring should encode ! when targetting .net 4.5 projects i'm unable test on current machine. escapedatastring on previous .net frameworks not percentage encode characters above. may need use string.replace , replace characters above escaped uri.
Comments
Post a Comment