美文网首页
ios处理h5链接中包含中文字符

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

作者: 从容到没边的优雅 | 来源:发表于2019-03-14 16:36 被阅读0次

    ios9前:

    • 编码
      一般情况下含有中文的处理可以直接采用:
      - (nullable NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc
      但是,对于某些特殊字符是我们不需要转码,单独指定
    resultStr = (NSString*)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)resultStr,(CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]",NULL, kCFStringEncodingUTF8));
    
    • 解码
      - (nullable NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)enc

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

    相关文章

      网友评论

          本文标题:ios处理h5链接中包含中文字符

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