クエリ項目を追加すると、NSURLComponentsは%2Bを+に変更し、%7Bは変更しません。私の理解から、「+」と「{'の両方をデコードすると、なぜそのうちの1つをデコードするのでしょうか?NSURLComponentsは新しいクエリの追加時に%2Bを+に変更します。項目
NSString *urlString = @"http://www.example.com?a=%7B1%2B2%7D";
NSURLComponents *components = [NSURLComponents componentsWithString:urlString];
NSLog(@"%@",components);
// <NSURLComponents 0x7ffc42c19d40> {scheme = http, user = (null), password = (null), host = www.example.com,
// port = (null), path = , query = a=%7B1%2B2%7D, fragment = (null)}
NSURLQueryItem *queryItem = [NSURLQueryItem queryItemWithName:@"hl" value:@"en-us"];
components.queryItems = [components.queryItems arrayByAddingObject:queryItem];
NSLog(@"%@",components);
// <NSURLComponents 0x7ffc42c19d40> {scheme = http, user = (null), password = (null), host = www.example.com,
// port = (null), path = , query = a=%7B1+2%7D&hl=en-us, fragment = (null)}
これは実際には既存の問題であり、これはdownvotesなぜ、私は知らないのですか? – ooops