附加字符串 - 使用一个字但不是两个字符串

时间:2013-06-19 14:51:03

标签: objective-c url

我将一个字符串附加到一个url,然后输入到一个数据库中,它使用一个单词的字符串,例如

NSString * string = @"one";

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

NSString * string = @"one two";

它不起作用。请参阅下面的代码。

NSMutableString * urlString = [NSMutableString stringWithString:url];

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

问题显然在于stringWithFormat;

结果证明问题在于空间。

3 个答案:

答案 0 :(得分:2)

网址中不允许使用空格字符(以及其他某些字符)。您需要将空格转换为%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]];

答案 1 :(得分: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

答案 2 :(得分:0)

以这种方式试试。

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