0

我正在尝试为我的 iphone 应用程序解码一个 url 查询。

这是我使用的代码

    - (NSDictionary *)parseQueryString:(NSString *)query {

    NSArray *pairs = [query componentsSeparatedByString:@"&"];
    NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:[pairs count]];

    for (NSString *pair in pairs) {

        NSArray *elements = [pair componentsSeparatedByString:@"="];
        NSString *key = [elements objectAtIndex:0];
        NSString *val = [elements objectAtIndex:1];

        [dict setObject:val forKey:key];

    }
    return dict;
}

这是我一直在输入的查询字符串。

station=124&serverip=demo\sqlexpress&username=test&password=noneofyourbusiness&serviceip=anumber&useimages=true&imagepath=pathforimages

当我 NSLog 返回的字典时,服务器 ip 显示为

serverip = "demo\\sqlexpress";

突然它有两个反斜杠而不是一个。任何想法如何解决这一问题?

4

1 回答 1

1

你的弦可能没问题。记录字典打印不会按原样打印字符串。

打印字典会将其转换为旧NSPropertyListOpenStepFormat格式。字符串使用反斜杠进行转义。

于 2013-03-25T17:41:32.057 回答