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