美文网首页
OC与SWIFT urlEncode编码区别

OC与SWIFT urlEncode编码区别

作者: 明谣_罗潇 | 来源:发表于2018-07-13 16:26 被阅读0次

    swift语言在转换图片为base64时进行urlEncode时出现的问题。

    差别:
    swift版本只能对一些通用字符做转译(汉字等等)
    OC版本需要对已加字符做转译 (!*'"();:@&=+$,/?%#[]%)
    每个特殊字符都转译为“%2、%7” 等等....

    使用上注意:对复杂数据(音频、图像)转为的二进制base64,用OC版本。


    swift版本:

    func urlEncoded() -> String {
            let encodeUrlString = self.addingPercentEncoding(withAllowedCharacters:
                .urlQueryAllowed)
            return encodeUrlString ?? ""
        }
    

    OC版本:

    - (NSString *)urlEncoder {
        
        NSString *urlEncode=  (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
                                                                                                    NULL,
                                                                                                    (__bridge CFStringRef)self,
                                                                                                    NULL,
                                                                                                    (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
                                                                                                    CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)));
        return urlEncode;
    }
    
    

    相关文章

      网友评论

          本文标题:OC与SWIFT urlEncode编码区别

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