美文网首页
防止已经转码的中文地址二次转码

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

作者: 天马行空得想法 | 来源:发表于2021-01-22 21:00 被阅读0次

在公司项目中,视频播放的时候,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);

相关文章

网友评论

      本文标题:防止已经转码的中文地址二次转码

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