iOS 解決WebView加載中文鏈接失敗原因

在開發過程中經常會遇到使用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];

這樣我們就可以加載包含中文的鏈接了(當然沒有中文的鏈接也不會收到影響)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章