iOS:转义网址链接中的特殊字符问题

iOS:转义网址链接中的特殊字符问题,第1张

1 汉字或者一般的转特殊字符转义问题, 可以直接用:

2 我在开发中还遇到 这些字符( ! * ' ( ) :@ &=  + $ , / ? % # [ ] )不能正常转化 .就会造成访问地址链接包含非法字符问题

解决办法:

在本类中新增一个下面的方法, 转义的时候调用这个方法来转义, 就解决了

这个方法的目的就是 对这写不能正常转义的字符,进行判断, 并加以正确的转义 *** 作!

前言:根据需求,我将一个数组类型(每一个数据都是字典类型)的数据转化为json字符串的形式传给后台。我在需要的地方再请求下来这个数据。结果发现请求下来的数据被转义处理了,引号被转义成"。

1.传给后台的json字符串。

  NSMutableArray *conArr = [[NSMutableArray alloc] initWithCapacity:0]

     for (DynmaticModel*model in self .dataArray)

     {

         if (model.content&&model.content.length>0) {

             NSDictionary*dic =@{@"type":model.type,@"content":model.content}

             [conArraddObject:dic]

         }

     }

    NSData *priceDta = [NSJSONSerialization dataWithJSONObject:conArr options:kNilOptions error: nil ]

    NSString *priceJson = [[NSString alloc] initWithData:priceDta  encoding:NSUTF8StringEncoding]

传给后台的priceJson字符串打印如下:

priceJson = [{"type":"1","content":"啦啦啦1"},{"type":"2","content":"http://fengwojiancai.oss-cn-beijing.aliyuncs.com/ios/20200908151508/2020090815150802.png"},{"type":"1","content":"啦啦啦2"}]

2.上传成功后从后台请求下来的字符串如下:

[{"type":"1","content":"啦啦啦1"},{"type":"2","content":"http:\/\/fengwojiancai.oss-cn-beijing.aliyuncs.com\/ios\/20200908151508\/2020090815150802.png"},{"type":"1","content":"啦啦啦2"}]

3.如何处理:

(1)将字符串中的"用引号替换

 NSString *str = [ text stringByReplacingOccurrencesOfString:@""" withString:@"\""]

这个str就是你传上去的json字符串。

(2)将json转化为数组

NSData *JSONData = [str dataUsingEncoding:NSUTF8StringEncoding]

        NSError*error = nil

        NSArray * arr = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingAllowFragments error:&error]

        for (NSDictionary *dic   in   arr) {

            NSLog(@"dic = %@",dic)

        }

这样就ok了!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6286003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存