iOS 只对URL中的中文进行转码

作者: rztime | 来源:发表于2016-07-13 09:14 被阅读2850次

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

相关文章

网友评论

  • 指尖猿:亲测可用,大赞楼主
  • 茗荚小草:管用~感谢
  • MoussyL:好像不太管用呢,楼主还在么 :joy:
    MoussyL:@若醉灬 恩恩 ,是没问题的,我这个问题和你这个还不太一样 哈哈 谢谢啦~ :pray:
    rztime:我的项目一直在用,没出问题呢

本文标题:iOS 只对URL中的中文进行转码

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