NSURL特殊字符编码

在做项目的时候,我们一般要用到网络搜索,所以链接(也就是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;      
}

你可能感兴趣的:(NSURL特殊字符编码)