在iPhone上解析XML / JSON数据时,是否有更好的方法来处理保留字符?

时间:2010-03-24 02:25:04

标签: iphone xml json parsing replace

以下代码有效,但它很难看并创建了一堆自动释放的对象。我也使用类似的代码来解析保留的HTML字符(用于引号和符号等)。我只是想知道......有更清洁的方式吗?

    NSString *result = [[NSString alloc] initWithString:userInput];

    NSString *result2 = [result stringByReplacingOccurrencesOfString:@"#" 
                                withString:@"\%23"];
    NSString *result3 = [result2 stringByReplacingOccurrencesOfString:@" " 
                                withString:@"\%20"];
    formatted = [[result3 stringByReplacingOccurrencesOfString:@"&" 
                                withString:@"\%26"] retain];
    [result release];

2 个答案:

答案 0 :(得分:1)

@Yannick,你走在正确的轨道上,谢谢你。 stringByAddingPercentEscapesUsingEncoding有点工作,但忽略了某些仍然可能存在问题的字符(如斜杠)。以下是进行URL编码的最佳方法:

NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
                                       NULL,
                                       (CFStringRef)unencodedString,
                                       NULL,
                                       (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
                                       kCFStringEncodingUTF8 );

答案 1 :(得分:0)

您是否尝试过使用stringByAddingPercentEscapesUsingEncoding方法?

formatted = [result stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];