我无法正确获取字符串网址格式。所需的输出是:
http://gdata.youtube.com/feeds/api/videos?q=corgi&start-index=1&max-results=50&v=2&fields=entry%5Blink/@rel='http://gdata.youtube.com/schemas/2007%23mobile'%5D
这是我开始使用的代码:
NSString *urlRequest = [NSString stringWithFormat:@"http://gdata.youtube.com/feeds/api/videos?q=corgi&start-index=%u&max-results=%u&v=2&fields=entry[link/@rel='http://gdata.youtube.com/schemas/2007%23mobile']", dataStartIndex, dataIncrements];
NSURL *url = [NSURL URLWithString:urlRequest];
它最终在'%23mobile'上乱窜,并使其成为'20072obile'。我尝试在@符号之前使用\但这不起作用。我做错了什么?
奇怪的是,如果我把它分成两部分,它就能正常工作:
NSString *urlRequest = [NSString stringWithFormat:@"http://gdata.youtube.com/feeds/api/videos?q=corgi&start-index=%u&max-results=%u&v=2&fields=entry", dataStartIndex, dataIncrements];
NSURL *url = [NSURL URLWithString:[urlRequest stringByAppendingString:@"[link/@rel='http://gdata.youtube.com/schemas/2007%23mobile']"]];
如果我没有任何参数(dataStartIndex,dataIncrements),它也可以工作。
答案 0 :(得分:2)
添加额外的%以转义%,因为您提供的字符串是格式字符串,而不是纯字符串。
答案 1 :(得分:2)
您需要使用其他%23
转义%
,以制作2007%%23mobile
。例如:
NSString *urlRequest = [NSString stringWithFormat:@"http://gdata.youtube.com/feeds/api/videos?q=corgi&start-index=%u&max-results=%u&v=2&fields=entry[link/@rel='http://gdata.youtube.com/schemas/2007%%23mobile']", dataStartIndex, dataIncrements];
答案 2 :(得分:2)
您可以使用: -
NSString *string=[@"yourUrlString" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];