这个应该是网址解析的问题吧。 当使用比如这个网址:http://www.baidu.com/s?wd=二维码&rsv_spt=1&issp=1,经过 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding 把中文转换成UTF8,就可以使用webView打开。 而这个 http://8.中国 地址经过 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding 编码之后,走webView代理中的失败方法。错误为:Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname could not be found." UserInfo=0x16e4f180 {NSErrorFailingURLStringKey=http://8.%e4%b8%ad%e5%9b%bd/, NSErrorFailingURLKey=http://8.%e4%b8%ad%e5%9b%bd/, NSLocalizedDescription=A server with the specified hostname could not be found., NSUnderlyingError=0x16e4ed90 "A server with the specified hostname could not be found."}
//url编码(ARC)
+ (NSString *)urlEncodingString:(NSString *)origion {
NSString *encoded = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)origion,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8));
return encoded;
}
这样就好了NSString* urlString = @"http://.........";
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlString];
光中文也不好使呀 你们试试谁能把 http://8.中国 打开
当使用比如这个网址:http://www.baidu.com/s?wd=二维码&rsv_spt=1&issp=1,经过 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding 把中文转换成UTF8,就可以使用webView打开。
而这个 http://8.中国 地址经过 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding 编码之后,走webView代理中的失败方法。错误为:Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname could not be found." UserInfo=0x16e4f180 {NSErrorFailingURLStringKey=http://8.%e4%b8%ad%e5%9b%bd/, NSErrorFailingURLKey=http://8.%e4%b8%ad%e5%9b%bd/, NSLocalizedDescription=A server with the specified hostname could not be found., NSUnderlyingError=0x16e4ed90 "A server with the specified hostname could not be found."}