第一種方法
url含有中文的解決方法html
NSString * encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)urlStr,NULL,NULL,kCFStringEncodingUTF8));編碼
urlStr是url地址,拼接中含有中文。url
第二種方法
解碼:[@"編碼後的字符串" stringByRemovingPercentEncoding];//解碼spa
NSURL 轉換字符串能夠直接使用NSURL的屬性absoluteString
例如上述的url,NSString * urlStr = url.absoluteString;.net
使用上面的方法無效,解決方法使用這個code
//urlEncode編碼htm
NSString *charactersToEscape = @"?!@#$^&%*+,:;='\"`<>()[]{}/\\| ";blog
NSCharacterSet *allowedCharacters = [[NSCharacterSet characterSetWithCharactersInString:charactersToEscape] invertedSet];字符串
NSString * stringUrl = [string stringByAddingPercentEncodingWithAllowedCharacters:allowedCharacters];get
//urlEncode解碼
NSMutableString *outputStr = [NSMutableString stringWithString:input];
[outputStr replaceOccurrencesOfString:@"+" withString:@"" options:NSLiteralSearch range:NSMakeRange(0,[outputStr length])];
[outputStr stringByRemovingPercentEncoding];
參考:https://www.jianshu.com/p/b7dde2b1e992