NSString轉NSUrl要注意

webview加載的url或者網絡圖片的url,一般都是從後臺請求的。這個時候如果後臺哥們兒不注意,在給你的url字符串裏面加一些“佐料”:中文或者分號、 等亂七八糟的,會導致你字符串轉換的NSURL爲nil。這個時候你就需要先編碼後轉換比如:
NSString *url = [NSString stringWithFormat:@”http://google.cn/…”,…];
方法1:url = [url stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];//這個方法在遇到某些情況時會出問題,如果其中含有已轉義的%等符號時,又會再次轉義而導致錯誤.

方法2: NSString encodedString = (NSString )
CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)url,
(CFStringRef)@”!$&’()*+,-./:;=?@_~%#[]”,
NULL,
kCFStringEncodingUTF8);

這些轉換過後的字符串用來webview加載是可以的,但如果這是一個網絡圖片的鏈接。你就又會蛋疼的不行,因爲有時候你會發現這個圖片根本加載不出來,系統方法、sd都不行。這可能是不同系統之間的編碼模式有區別導致的不兼容。
最根本的方法還是讓後臺哥們兒把回傳的鏈接規範一下。鏈接之中不要出現什麼中文鍵盤下輸入的文字或者特殊字符。

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