Objective C HTML escape/unescape

前端 未结 14 2134
生来不讨喜
生来不讨喜 2020-11-22 16:19

Wondering if there is an easy way to do a simple HTML escape/unescape in Objective C. What I want is something like this psuedo code:

NSString *string = @\"         


        
14条回答
  •  星月不相逢
    2020-11-22 16:49

    This easiest solution is to create a category as below:

    Here’s the category’s header file:

    #import 
    @interface NSString (URLEncoding)
    -(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding;
    @end
    

    And here’s the implementation:

    #import "NSString+URLEncoding.h"
    @implementation NSString (URLEncoding)
    -(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding {
        return (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
                   (CFStringRef)self,
                   NULL,
                   (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
                   CFStringConvertNSStringEncodingToEncoding(encoding));
    }
    @end
    

    And now we can simply do this:

    NSString *raw = @"hell & brimstone + earthly/delight";
    NSString *url = [NSString stringWithFormat:@"http://example.com/example?param=%@",
                [raw urlEncodeUsingEncoding:NSUTF8Encoding]];
    NSLog(url);
    

    The credits for this answer goes to the website below:-

    http://madebymany.com/blog/url-encoding-an-nsstring-on-ios
    

提交回复
热议问题