0

我将一个字符串附加到一个 url,然后输入到数据库中,它与一个单字字符串一起工作,例如

NSString * string = @"one";

但是,如果我的字符串有两个单词,例如

NSString * string = @"one two";

这没用。请看下面的代码。

NSMutableString * urlString = [NSMutableString stringWithString:url];

[urlString appendString:[NSString stringWithFormat:@"?%@=%@",kWord,word]];

问题显然在于 stringWithFormat;

原来问题出在空间上。

4

3 回答 3

2

URL 中不允许使用空格字符(以及某些其他字符)。您需要将空间转换为%20. 这是正确的解决方案:

NSString *url = @"http://example.com/process.php";
NSString *kword = @"param";
NSString *word = @"one two";
NSMutableString * urlString = [url mutableCopy];
[urlString appendFormat:@"?%@=%@", kWord, [word stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
于 2013-06-19T16:02:59.167 回答
1

我在这里尝试了几个示例,希望对您有所帮助。

NSString *string1 = @"String1";
NSString *string2 = @"String2 String3";

NSMutableString *appendingString=[NSMutableString stringWithString: [string1 stringByAppendingString:string2]];
NSLog(@"String1:%@  String2:%@",string1,string2);
NSLog(@"StringwithAppend:%@",appendingString);

//------
NSString *url=@"www.abc.com";
NSMutableString * urlString = [NSMutableString stringWithString:url];
NSLog(@"URL String before append:%@",urlString);
NSString *kWord=@"key";
NSString *word=@"word";
[urlString appendString:[NSString stringWithFormat:@"?%@=%@",kWord,word]];
NSLog(@"URL String after append:%@",urlString);

控制台日志:

String1:String1 String2:String2 String3 StringwithAppend:String1String2 String3 URL 追加前的字符串:www.abc.com URL 追加后的字符串:www.abc.com?key=word

于 2013-06-19T15:29:58.887 回答
0

试试这个方法。

NSString * urlString= [NSString stringWithFormat:@"%@?%@=%@", url, kword, word];

于 2013-06-19T14:59:03.537 回答