防止已经转码的中文地址二次转码

在公司项目中,视频播放的时候,url可能已经utf-8转码了,也可能未转码而包含中文,对url中的中文进行转码时,如果url中的中文已经是utf-8转码了,那么会二次转码,在项目需求中url就无效。

对url中的中文进行转码(如果已知url中的中文没有进行utf-8转码)

url = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

如果知道url中的中文既可能已经转码,也可能没有转码,那么使用如下的方法,当不管url中的中文是否已经utf-8转码了,都可以解决将中文字符转为utf-8的问题,且不是二次转码

NSLog(@"原url:%@", url);
NSString *encodedString = (NSString *)
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)url,  (CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]",  NULL, kCFStringEncodingUTF8));
NSLog(@"转码url:%@",  encodedString);

你可能感兴趣的:(防止已经转码的中文地址二次转码)