遇到一個問題窍霞,webview加載一段URL顯示不了,URL是正確的拯坟,后來發(fā)現(xiàn)url路勁里有個#號但金,打印的時候被轉(zhuǎn)義了,導(dǎo)致頁面顯示不出來郁季,特意去網(wǎng)上找了下資料冷溃,記錄下:
stringByAddingPercentEscapesUsingEncoding
該方法只對 `#%^{}[]|\"<> 加空格共14個字符編碼,不包括”&?”等符號,
iOS9將淘汰梦裂,建議用stringByAddingPercentEncodingWithAllowedCharacters方法
stringByAddingPercentEncodingWithAllowedCharacters方法需要傳一個參數(shù)NSCharacterSet對象似枕。
關(guān)于 NSCharacterSet 這篇 文章說的很好
NSCharacterSet舉例說明:
URLFragmentAllowedCharacterSet "#%<>[\]^`{|}
URLHostAllowedCharacterSet "#%/<>?@\^`{|}
URLPasswordAllowedCharacterSet "#%/:<>?@[\]^`{|}
URLPathAllowedCharacterSet "#%;<>?[\]^`{|}
URLQueryAllowedCharacterSet "#%<>[\]^`{|}
URLUserAllowedCharacterSet "#%/:<>?@[\]^`
當(dāng)URL里有特殊字符不需要轉(zhuǎn)義時,處理方法:
NSString *unreserved = @"-._~/?#:";
NSMutableCharacterSet *allowed = [NSMutableCharacterSet alphanumericCharacterSet];
[allowed addCharactersInString:unreserved];
NSString *result = [string stringByAddingPercentEncodingWithAllowedCharacters:allowed];