Encode NSString for XML/HTML

后端 未结 14 1388
误落风尘
误落风尘 2020-11-28 04:25

Is there a way to HTML encode a string (NSString) in Objective-C, something along the lines of Server.HtmlEncode in .NET?

14条回答
  •  醉酒成梦
    2020-11-28 04:56

    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:NSUTF8StringEncoding]];
    NSLog(url);
    

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

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

提交回复
热议问题