NSString没有正确显示

时间:2010-10-20 11:05:43

标签: iphone objective-c cocoa cocoa-touch nsstring

我有以下NSString:

NSString* searchURL = [NSString stringWithFormat:@"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22%@%22)%0A%09%09&format=json&env=http%3A%2F%2Fdatatables.org%2Falltables.env&callback=",symbol];  
    NSLog(@"URL IS: %@", searchURL);

在打印时看起来没有包含%22:

URL IS: http://query.yahooapis.com/v1/public/yql?q=select220from2ahoo.finance.quotes2here              `º≠ymbol              813020n22@20X1.000982B6P-1042009&format=json&env=http0X1.8CFB8P-1023-1.9907460.000000datatables.org-1.990746alltables.env&callback=

如何确保%22包含在我的字符串中?

3 个答案:

答案 0 :(得分:7)

如果要在格式字符串中包含“%”符号,请使用“%%”

就像printf等人一样。

阅读stringWithFormat的完整文档,以避免其他不良意外......

答案 1 :(得分:2)

%是格式字符串中的特殊字符。使用%%来逃避字面百分号。

答案 2 :(得分:0)

%字符用于url格式中的编码空间。如果要请求任何url,则需要使用stringByAddingPercentEscapesUsingEncoding对其进行编码:NSASCIIStringEncoding 。因此,出现的%符号是空间的编码形式。因此,通过清除此基本

来实现