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