2015-04-20 2 views
0

У меня есть строка, которая заканчивается знаком процента (%),Objective-C URL-строка содержит знак процента

эта строка подготовлена ​​для запроса URL в качестве параметра:

NSString *parameter = @"/param=%"; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL urlWithString:[NSString stringWithFormat:@"http://www.whatev%@",parameter]]]; 

Просьба, возвращается nil.

Я пробовал:

NSString *parameter = @"/param=\uFF05"; 
//request returns nil 

и

NSString *parameter = @"/param=%"; 
NSString *newParameter = [parameter stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
//request returns /param=%25 ...where does 25 come from?! 

Как я мог только один% преобразуется в URL запроса?

Любые советы будут оценены.

+0

используется этот http://stackoverflow.com/questions/739682/how-to-add-percent-sign-to-nsstring –

+0

HTTP: //stackoverflow.com/questions/21403323/url-encoding-a-string/21404487#21404487 – Sport

+0

% 25 для% ... Это из-за кодирования ... Как пространство преобразуется в% 20 –

ответ

0

Знак процента имеет специальную цель в URL-адресах и используется для кодирования специальных символов всех видов. Например, пробел() равен% 20, а сам знак процента равен% 25.

http://en.wikipedia.org/wiki/Percent-encoding

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

+0

u're right последнее прекрасно работает! Я был просто смущен о 25 и забыл дать ему попробовать lol ... – bluenowhere

0

побег последовательность % является %%, поэтому @"/param=%%" должен решить проблему

+0

не работает ... хотел бы знать, почему – bluenowhere

Смежные вопросы