ios 对URL字符串编解码

2020-04-27  本文已影响0人  liang1030

1,解码:

//iOS9.0(包括9.0)以上使用
NSString *decodeUrl = [str stringByRemovingPercentEncoding]; 

//iOS9.0以下使用
NSString *decodeUrl = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

2,编码

//iOS9.0(包括9.0)以上使用
NSString *encodeUrl = [str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

//iOS9.0以下使用

NSString *encodeUrl = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

3,过滤掉特殊字符编码

/**
*  @brief  编码URL字符串 过滤-_.!~*;/?:@&=+$,#
*
*  @return 编码后的URL
*/
-(NSString *)encodeUrlString {
    NSString * urlNoBlank = [self trim];
    NSMutableCharacterSet *lastSet = [[NSMutableCharacterSet alloc] init];
    [lastSet formUnionWithCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"-_.!~*;/?:@&=+$,#"]];
    [lastSet formUnionWithCharacterSet:[NSCharacterSet letterCharacterSet]];
    [lastSet formUnionWithCharacterSet:[NSCharacterSet alphanumericCharacterSet]];
    NSString * escapedQueryWord = [urlNoBlank stringByAddingPercentEncodingWithAllowedCharacters:lastSet];
    return escapedQueryWord;
}
上一篇 下一篇

猜你喜欢

热点阅读