Objective C NSString 编码成URL 特殊字符处理

找了一下网上的教程都是使用类似以下代码,Xcode提示这个CoreFoundation不受ARC管理,所以折中的方式是添加__bridge.

NSString *encodedValue = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(nil,

(CFStringRef)unencodedString, nil,

(CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8);

但是其实有很好的一个解决方案

NSString *encodedValue=[unencodedString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet alphanumericCharacterSet]];

使用NSString内置的API即可。