1

文字列URLを正しくフォーマットするのに問題があります。必要な出力は次のとおりです。

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」にします。@記号の前に\を使用してみましたが、うまくいきませんでした。私は何が間違っているのですか?

不思議なことに、次のように2つに分割すると、正しく機能します。

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)なしで実行した場合にも機能します。

4

3 に答える 3

2

指定した文字列は単純な文字列ではなくフォーマット文字列であるため、%をエスケープするために%を追加します。

于 2012-05-24T04:40:24.083 に答える
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];
于 2012-05-24T04:40:52.380 に答える
2

あなたが使用することができます:-

NSString *string=[@"yourUrlString" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2012-05-24T04:45:20.230 に答える