在開發過程中經常會遇到使用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];
這樣我們就可以加載包含中文的鏈接了(當然沒有中文的鏈接也不會收到影響)。