0

我需要根据用户的输入从网站收集数据。

searchString 是用户输入的值,例如“搜索这个字符串”。

NSString *withoutSpaces = [searchString stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

在这里,我需要用 %20 替换空格

接下来,我需要将不带空格的新字符串(替换为 %20)放入另一个字符串中。

NSString *unescapedSearchString = [NSString stringWithFormat:
                                @"website.com/query?=%22%@%22", withoutSpaces];

我需要的网站并不是真正的“website.com”,但这只是一个例子。我还需要 %22 保留在开头和结尾。

如您所见,我需要 %@ 将新的 withoutSpaces 用户输入格式化为网站 URL。

我进行了搜索并找到了示例,但我找不到任何具有格式的示例,例如在我的情况下使用 %@。

“转义”字符并保留格式化字符串的最佳方法是什么?目前,当我尝试从网站访问数据时,它返回为空。但是,当我尝试没有 %@ 格式和实际值的字符串时,我成功地从网站检索数据。

任何帮助是极大的赞赏。

4

1 回答 1

-1

你应该这样做:

NSString *searchString = ... // the raw search string with spaces and all
NSString *quoted = [NSString stringWithFormat:@"\"%@\"", searchString];
NSString *escaped = [quoted stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSString *urlString = [NSString stringWithFormat:@"website.com?query=%@&value=all", escaped];

顺便说一句 - URL 似乎有点不对劲。=之前和之后应该有一个变量名?

于 2013-04-12T21:53:25.707 回答