iOS中文参数的URL地址URLEncode转码

在iOS开发中,当URL含有中文参数时,直接使用该URL创建NSURL对象会导致对象为空。例如链接`http://app.enails.cn/serives/name.ashx?userid=20170321074746&username=张三`,由于未进行URLEncode转码,创建的NSURL为nil。为解决此问题,需要使用`stringByAddingPercentEncodingWithAllowedCharacters:`方法,结合`URLQueryAllowedCharacterSet`对URL字符串进行转码,确保可以正确创建NSURL对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   *生成URL对象时,如果链接中含有中文参数时,用这个带有中文参数的链接创建的NSURL对象会为空。


   *以这个链接为例://http://app.enails.cn/serives/name.ashx?userid=20170321074746&username=张三


         NSString *urlString = @"http://app.enails.cn/serives/name.ashx?userid=20170321074746&username=张三";

     NSURL *url = [NSURL URLWithString:urlString];

    

   *此时url为nil,因为URL的参数中含有中文字符,此刻又没对urlString进行URLEncode转码,造成创建的NSURL对象为空。


     *所以我们要对这个urlString进行URLEncode转码,方法如下:


     NSString *urlString = @"http://app.enails.cn/serives/name.ashx?userid=20170321074746&username=张三";    

     //对urlString进行URLEncode转码

     //URLQueryAllowedCharacterSet 返回一个包含字符的字符集允许一个URL的查询组件。

     NSCharacterSet *encode_set= [NSCharacterSet URLQueryAllowedCharacterSet];

     NSString *urlString_encode = [urlString stringByAddingPercentEncodingWithAllowedCharacters:encode_set];

     NSURL *url = [NSURL URLWithString:urlString_encode];


    *附:https://developer.apple.com/documentation/foundation/nscharacterset?changes=latest_major&language=objc (NSCharacterSet的官方文档)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值