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";

突然、1つではなく2つの円記号が表示されます。これを修正する方法はありますか?

4

1 に答える 1

1

あなたの弦はおそらく大丈夫です。辞書の印刷をログに記録しても、文字列はそのままでは印刷されません。

辞書を印刷すると、古いNSPropertyListOpenStepFormat形式に変換されます。文字列は、そこからエスケープするためにバックスラッシュを使用します。

于 2013-03-25T17:41:32.057 に答える