iOS macOS URL编码和解码过程(UrlEncode)

字符串URL编码实现
NSString *urlStr = @"你好0123456789abcxyzABCXYZ-_.~&!*'();:@&=+$,/?#[]% "; //方式一编码对比 NSString *encodingString = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSLog(@"url编码1-1 = %@",encodingString); //方式二自定义字符集 ABC-_~.!*'();:@&=+ $,/?%#[] 编码对比 NSString *encodeStr2 = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)urlStr, NULL, (CFStringRef)@"ABC-_~.!*'();:=+ $,/?%#[]", kCFStringEncodingUTF8)); NSLog(@"url编码2-2 = %@",encodeStr2); //系统提供的枚举字符集,这些字符不需要 编译 NSString *encodeStr3 = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; NSLog(@"url编码3-1 = %@",encodeStr3); //自定义字符不需要编译的字符集,为空字符集,将所有字符用百分号编码 NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@""]; NSString *encodeStr4 = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:characterSet]; NSLog(@"url编码3-2 = %@",encodeStr4);
打印结果是:
网上常见的字符集枚举说明(供参考):
URLFragmentAllowedCharacterSet "#%<>[\]^`{|} URLHostAllowedCharacterSet "#%/<>?@\^`{|} URLPasswordAllowedCharacterSet "#%/:<>?@[\]^`{|} URLPathAllowedCharacterSet "#%;<>?[\]^`{|} URLQueryAllowedCharacterSet "#%<>[\]^`{|} URLUserAllowedCharacterSet "#%/:<>?@[\]^`
字符串URL解码实现
//上段代码的结果为encodeStr3入参 NSString *decodedStr3 = [encodeStr3 stringByRemovingPercentEncoding]; NSLog(@"url编码3-1 = %@",decodedStr3); //上段代码的结果为encodeStr4入参 NSString *decodedStr4 = [encodeStr4 stringByRemovingPercentEncoding]; NSLog(@"url编码3-2 = %@",decodedStr4);
打印结果是
感谢转载的大神:https://blog.csdn.net/u014600626/article/details/127836395
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2022-08-01 iOS macOS限制输入框判断输入内容
2019-08-01 iOS NSlog打印数据不完全,xcode处理办法