I'm following the hybrid app example that overrides WebViewClient.ShouldOverrideUrlLoading to intercept links and posts. Since this doesn't work with POST, I use GET for forms. However, the form control values get encoded and put into the URL passed to ShouldOverrideUrlLoading , but the encoding uses "+" instead of "%20" as does my ASP.NET web app version. I can simply do:
url = url.Replace("+", " ");
But then what if users want a "+" in an edit field? Is the only way to force them to use some kind of escape like "%43" and/or "+"? Such that I then need to do something like:
url = url.Replace("+", " ");
url = url.Replace("%2543", "+");
url = url.Replace("%26%2343%3B", "+");
This seems to be the standard for Url encoding form fields.
According to Wikipedia
When data that has been entered into HTML forms is submitted, the form field names and values are encoded and sent to the server in an HTTP request message using method GET or POST, or, historically, via email.[2] The encoding used by default is based on an early version of the general URI percent-encoding rules,[3] with a number of modifications such as newline normalization and replacing spaces with "+" instead of "%20". The Internet media type of data encoded this way is application/x-www-form-urlencoded, and it is currently defined (still in a very outdated manner) in the HTML and XForms specifications. In addition, the CGI specification contains rules for how web servers decode data of this type and make it available to applications.
So you would have to unencode the URL to work with it and have the plusses changed to spaces appropriately.