美文网首页
iOS UrlEnCode加密需要注意

iOS UrlEnCode加密需要注意

作者: 为了自由的白菜 | 来源:发表于2019-12-30 12:09 被阅读0次

今天跟安卓的同学对接一个问题, 发现了一个及其坑爹的BUG, 安卓在进行UrlEncode编码时, 将空格转义为了"+", 但是iOS这边进行UrlEncode编码时, 是将空格转义为"%20", 这不坑爹的嘛, 在对接的时候两边数据对不上
在Stack Overflow上找到了解释URL encoding the space character: + or %20?

简单来说就是:%20是比较老一点的写法,现在的做法是:url中的“?”前的空格要转义成“%20”,“?”之后的空格要转义成“+”!

而Jave系统中自带的方法是这么做的, 但是在iOS系统中调用[str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; 是将空格转义为了"%20"

经测试后


image.png

后来这边的处理方法为
特殊字符使用[str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"#%<>[\]^`{|}"]+"].invertedSet];
这个方法去进行UrlEnCode转义,

然后iOS端在解析之前, 先将未转义的字符串中的"+"替换为" "空格

然后再进行[str stringByRemovingPercentEncoding];iOS端就可以正常解析使用, 暂时只能想到这个方法

相关文章

  • iOS UrlEnCode加密需要注意

    今天跟安卓的同学对接一个问题, 发现了一个及其坑爹的BUG, 安卓在进行UrlEncode编码时, 将空格转义为了...

  • iOS URLEncode

    之前的 URLEncode 实现收到了 Xcode 的黄警告: 于是换成了新的实现( iOS 7 和更高): 参考...

  • iOS 加密算法 CommonCrypto框架①【待补充】

    iOS 加密算法 iOS CommonCrypto框架① iOS 加密算法 iOS CommonCrypto框架②...

  • urldecode 及转换为dict

    urllib.parse 使用urllib.parse 来进行urlencode 和 urldecode 。注意,...

  • iOS中的RSA加密算法使用

    使用场景:iOS中部分隐私数据进行加密之后再传输到服务端 原理:在iOS开发中将需要加密的NSString类型的字...

  • iOS几种加密方式

    iOS 几种加密方法2017-06-19 [iOS开发] iOS常见的几种加密方法 普通加密方法是讲密码进行加密后...

  • iOS中urlencode

    iOS开发过程中有很多的编码,最近使用了urlencode编码,使用这个编码的主要作用是解决url中出现中文或者特...

  • iOS swift urlencode

    swift 升级到5,更新了三方库,支持的系统也从ios 8 升到了 ios 10 。发现有很多方法过期了。1.编...

  • iOS9 字符串或url的 UTF-8 编解码

    iOS9 字符串或url的 UTF-8 编解码 您需要加密的字符串 NSString *str = @"您需要加密...

  • iOS代码加密常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

网友评论

      本文标题:iOS UrlEnCode加密需要注意

      本文链接:https://www.haomeiwen.com/subject/upopoctx.html