iOS中urlencode

iOS开发过程中有很多的编码,最近使用了urlencode编码,使用这个编码的主要作用是解决url中出现中文或者特殊字符在网络传输过程中出现的乱码.

实际上是第一步先创建要转义的字符集合,.然后再使用

一,默认转义

stringByAddingPercentEncodingWithAllowedCharacters方法进行转义.

1,NSCharacterSet *encode_set= [NSCharacterSet URLUserAllowedCharacterSet];
2,NSString * nickname = [@"你好啊" stringByAddingPercentEncodingWithAllowedCharacters:encode_set];

字符串nickname就是通过urlencode转义之后的字符.

    //urlencode
    NSString* hStr =@"你好啊";
    NSString* hStr2 =@"@";
    NSLog(@"hStr = %@, hStr2 = %@",hStr, hStr2);
    NSString* hString = [hStr stringByAddingPercentEncodingWithAllowedCharacters:  [NSCharacterSet URLUserAllowedCharacterSet]];
    NSString* hString2 = [hStr2 stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLUserAllowedCharacterSet]];
    
    NSLog(@"hString ======= %@",hString);
    NSLog(@"hString2 ======= %@",hString2);

二,特殊字符转义

要转义的字符串包括这些:"?!@#$^&%*+,:;='"`<>()[]{}/\| "

NSString * charaters = @"?!@#$^&%*+,:;='\"`<>()[]{}/\\| ";
NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:charaters] invertedSet];
NSString * hStr2 = @"这是一对小括号 ()<>[]{}";
    NSString * hString2 = [hStr2 stringByAddingPercentEncodingWithAllowedCharacters:set];
    NSLog(@"hString2 ====== %@",hString2);

invertedSet 这个设置是必须要用的,不然转义set集合不会起到作用.

这是打印的hString2的urlencode之后的值,显而易见,这是转换成功的.


屏幕快照 2018-10-30 上午10.10.26.png

你可能感兴趣的:(iOS中urlencode)