在做项目的时候,我们一般要用到网络搜索,所以链接(也就是NSURL)总会遇到中文或是一些的的特殊字符,但是对于网站是不允许存在这些特殊字符的,所以我们需要对这些特殊的字符进行UTF8编码,下面是我给NSString写的两个分类
-(NSString *)encodeURLParameterString {
NSString *res = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(<#CFAllocatorRef allocator#>, <#CFStringRef originalString#>, <#CFStringRef charactersToLeaveUnescaped#>, <#CFStringRef legalURLCharactersToBeEscaped#>, <#CFStringEncoding encoding#>))
第一个参数:kCFAllocatorDefault
第二个参数:待转码的字符串
第三个参数:指示确定不转义的字符
第四个参数:指示确定要转义的字符
第五个参数:编码类型
NSString *result = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef) self, NULL, CFSTR(":/=,!$&'()*+;[]@#?"), kCFStringEncodingUTF8));
return result; }
- (NSString *) decodedURLString
{
NSString *res = (NSString *)CFBridgingRelease(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(<#CFAllocatorRef allocator#>, <#CFStringRef origString#>, <#CFStringRef charsToLeaveEscaped#>, <#CFStringEncoding encoding#>))
第一个参数:kCFAllocatorDefault
第二个参数:代转码的字符串
第三个参数:确定不转义的字符串
第四个参数:编码类型
*/
NSString *result = (NSString *)CFBridgingRelease(CFURLCreateStringByReplacingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, CFSTR("")));
return result;
}