I’m unable to open a URL into UIWebView so I’ve seached & found that I need to encode URL, so I tried to encode it but, I’ve facing problem in URL encoding : My URL is http://somedomain.com/data/Témp%20Page%20-%20Open.html (It’s not real URL).
I’m concerned with %20 that I tried to replace using stringByReplacingOccuranceOfString:@"" withString:@"" , it give me the URL I wanted like http://somedomain.com/data/Témp Page - Open.html However its not opening in UIWebView but amazingly it opens in Safari & FireFox perfect. Even I open unencoded URL its automatically converts and open the page I’m looking for.
I’ve google for URL encoding & it points me to different results I already checked but no results help me out!! I tried different functions answers in different URL encoding question but it just changed all special characters and make my URL like, http%3A%2F%2Fsomedomain.com%2Fdata%2FT... which can’t open in UIWebView and even in any browser.
It gives the following Error Log in UIWebView delegate
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { }
Error Code : 101
& Description : Error Domain=WebKitErrorDomain Code=101 “The operation couldn’t be completed. (WebKitErrorDomain error 101.)” UserInfo=0x6e4cf60 {}
I did some tests and I think the problem is not really with the
UIWebViewbut instead thatNSURLwon’t accept the URL because of the é in “Témp” is not encoded properly. This will cause+[NSURLRequest requestWithURL:]and-[NSURL URLWithString:]to returnnilas the string contains a malformed URL. I guess that you then end up using anilrequest with-[UIViewWeb loadRequest:]which is no good.Example:
Output:
If you really really want to borrow the graceful handling of malformed URLs that WebKit has and don’t want to implement it yourself you can do something like this but it is very ugly: