• Objective-C urlEncode urlDecode


    @interface NSString (stringByDecodingURLFormat)
    
    - (NSString *)stringByDecodingURLFormat;
    - (NSString*)stringByURLEncodingStringParameter;
    @end
    @implementation NSString(stringByDecodingURLFormat)
    
    - (NSString *)stringByDecodingURLFormat
    {
        NSString *result = [(NSString *)self stringByReplacingOccurrencesOfString:@"+" withString:@" "];
        result = [result stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        return result;
    }
    
    //encode
    - (NSString*)stringByURLEncodingStringParameter
    {
        
        NSString *resultStr = self;
        
        CFStringRef originalString = (__bridge CFStringRef) self;
        CFStringRef leaveUnescaped = CFSTR(" ");
        CFStringRef forceEscaped = CFSTR("!*'();:@&=+$,/?%#[]");
        
        CFStringRef escapedStr;
        escapedStr = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                             originalString,
                                                             leaveUnescaped,
                                                             forceEscaped,
                                                             kCFStringEncodingUTF8);
        
        if( escapedStr )
        {
            NSMutableString *mutableStr = [NSMutableString stringWithString:(__bridge NSString *)escapedStr];
            CFRelease(escapedStr);
            [mutableStr replaceOccurrencesOfString:@" "
                                        withString:@"%20"
                                           options:0
                                             range:NSMakeRange(0, [mutableStr length])];
            resultStr = mutableStr;
        }
        return resultStr;
    }
    @end

    把以上代码假如到NSString 的分类就可以直接使用

  • 相关阅读:
    vue表单验证定位到错误的地方
    INSPINIA Version 2.5 Bootstrap3
    volatile 彻底搞懂
    solr6.4.2之webservice兼容升级
    快速排序
    Elasticsearch调优篇 10
    TCP 连接为什么需要 3 次握手和 4 次挥手
    搜索技术与方案的选型与思考
    Elasticsearch调优篇 09
    Elasticsearch调优篇 08
  • 原文地址:https://www.cnblogs.com/code-changeworld/p/4707861.html
Copyright © 2020-2023  润新知