美文网首页常用加密
IOS中对Url进行编码和解码

IOS中对Url进行编码和解码

作者: petry | 来源:发表于2016-11-07 21:04 被阅读38次

    1.非ARC模式下
    编码

    - (NSString *)encodeToPercentEscapeString: (NSString *) input
    {
        // Encode all the reserved characters, per RFC 3986
        // (<http://www.ietf.org/rfc/rfc3986.txt>)
        NSString *outputStr = (NSString *) 
        CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                (CFStringRef)input,
                                                NULL,
                                                (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                kCFStringEncodingUTF8);
        return outputStr;
    }
    

    解码

    - (NSString *)decodeFromPercentEscapeString: (NSString *) input
    {
        NSMutableString *outputStr = [NSMutableString stringWithString:input];
        [outputStr replaceOccurrencesOfString:@"+"
                                   withString:@" "
                                      options:NSLiteralSearch
                                        range:NSMakeRange(0, [outputStr length])];
    
        return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    }
    

    2.ARC模式下

    - (NSString *)encodeToPercentEscapeString: (NSString *) input
    {
            NSString* outputStr = (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(
    
                                                                                               NULL, /* allocator */
    
                                                                                               (__bridge CFStringRef)input,
    
                                                                                               NULL, /* charactersToLeaveUnescaped */
    
                                                                                               (CFStringRef)@"!*'();:@&=+$,/?%#[]",
    
                                                                                               kCFStringEncodingUTF8); 
          return outputStr;
    }
    
    - (NSString *)decodeFromPercentEscapeString: (NSString *) input
    {
        NSMutableString *outputStr = [NSMutableString stringWithString:input];
        [outputStr replaceOccurrencesOfString:@"+" withString:@"" options:NSLiteralSearch range:NSMakeRange(0,[outputStr length])];
    
        return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    }
    

    相关文章

      网友评论

        本文标题: IOS中对Url进行编码和解码

        本文链接:https://www.haomeiwen.com/subject/rfoouttx.html