ios处理h5链接中包含中文字符

2019-03-14  本文已影响0人  从容到没边的优雅

ios9前:

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

ios9后:

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

但是,如果类似我们项目中h5用到vue加锚点的链接(http://xxx.com/#/newsSearch?title=哈哈&time=xxx),其中的#号也会转码,这就不是我们希望的了,可以换👇👇👇的方法:

    NSString *unreserved = @"!*'\"();:@&=+$,/?%#[]%";
    NSMutableCharacterSet *allowed = [NSMutableCharacterSet
                                      alphanumericCharacterSet];// 字母数字集合
    [allowed addCharactersInString:unreserved];
    urlStr = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:allowed];
[urlStr stringByRemovingPercentEncoding];
上一篇 下一篇

猜你喜欢

热点阅读