NSString не отображается должным образом - PullRequest
2 голосов
/ 20 октября 2010

У меня есть следующая строка 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 ]

7 голосов
/ 20 октября 2010

Если вы хотите включить знак «%» в строку формата, используйте «%%»

Так же, как в printf и др.

Прочитайте полную документацию по stringWithFormat, чтобы избежать других неприятных сюрпризов ...

2 голосов
/ 20 октября 2010

% - это специальный символ в строках формата.Используйте %% для экранирования буквальных знаков процента.

0 голосов
/ 20 октября 2010

% символов используются в пространстве кодирования в формировании URL-адреса. Если вы хотите запросить любой URL-адрес, вам необходимо его кодировать с помощью stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding.Таким образом, знак%, который появляется, является закодированной формой пространства. Реализуйте соответственно, очистив этот фундаментальный

...