美文网首页
NSString字符串encode与decode

NSString字符串encode与decode

作者: Hello_kid | 来源:发表于2017-09-11 11:32 被阅读239次

    URL字符串中具有特殊功能的特殊字符的字符串,或者中文字符,作为参数用GET方式传递时,需要用urlEncode处理一下


    1.URL ENCODE

     + (NSString *) encodeString:(NSString *)unencodedString
     {
            if([[[UIDevicecurrentDevice]systemVersion]floatValue] >=9.0) 
            {
    
                return[unencodedString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLPathAllowedCharacterSet]];
    
            }
            
            NSString*encodedString = (NSString*)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)unencodedString,NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8));
    
            returnencodedString;
    
     }
     
    

    2.URL DECODE

    
    -(NSString *)decodeString:(NSString*)encodedString
    
    {
    
        //NSString *decodedString = [encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding ];
    
        NSString *decodedString  = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL,
    
        (__bridge CFStringRef)encodedString,
    
        CFSTR(""),
        CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
    
        return decodedString;
    
    

    有用户反馈,说iOS9之后,CFURLCreateStringByAddingPercentEscapes这个方法废弃,所以根据官方的描述 替换使用stringByAddingPercentEncodingWithAllowedCharacters 这个方法。
    stringByAddingPercentEncodingWithAllowedCharacters 需要传递参数


    NSCharacterSet

    相关文章

      网友评论

          本文标题:NSString字符串encode与decode

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