在开发过程中经常会遇到使用webView问题,正常我们加载webView
NSURL* url = [NSURL URLWithString:[NSObject isEmptyOrNull:_linkString] ? @"" : _linkString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];//创建NSURLRequest
[_webView loadRequest:request];
这样我们就加载了webView
可是如果加载webView链接存在中文的时候经常就会出现加载链接失败的问题,这个是因为转码问题导致的,所以我们要加载这个链接的就要做一些特殊处理。
NSString *newLinkString = (NSString*) CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)_linkString,(CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]",NULL, kCFStringEncodingUTF8));
这样我们就可以过滤到一些转译后的特殊字符,这样我们就可以加载链接中包含中文的链接。
具体代码:
NSString *newLinkString = (NSString*) CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)_linkString,(CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]",NULL, kCFStringEncodingUTF8));
NSLog(@"newLinkString - - - - - - - - - - %@", newLinkString);
NSURL* url = [NSURL URLWithString:[NSObject isEmptyOrNull: newLinkString] ? @"" : newLinkString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];//创建NSURLRequest
[_webView loadRequest:request];
这样我们就可以加载包含中文的链接了(当然没有中文的链接也不会收到影响)。