OC与SWIFT urlEncode编码区别

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;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容