2

私はほとんどの場合、Web サービスと対話するアプリに取り組んでいます。URL をリクエストに変換するときにスペースを %20 に変換する場所にスペースを追加すると、問題が発生します。私はグーグルで検索しましたが、URLがリクエストされたときにのみ変更されるため、要件に応じた健全なソリューションを見つけることができませんでした。これが私がやっていることです。

    url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
NSLog(@"Request is : %@", request);
[[NSURLConnection alloc] initWithRequest:request delegate:self];

その上NSLogに、スペースが指定されている場所に %20 を表示します。誰かが親切に知っていれば、この問題を解決するためのより良い方法を提案してください。これは私にとって素晴らしいことです。前もって感謝します。

4

4 に答える 4

5

実際には、次の命令でスペースを %20 に変換しています。

url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

NSURLRequestただし、一部の文字ではこの変換が必要なため、これは正しい を取得するために必要です。

この他のNSString方法を使用して、それらを「通常の」文字に再変換できます。

– stringByReplaceingPercentEscapesUsingEncoding

于 2013-04-25T09:00:24.660 に答える
3

URL から %20 を削除するには

url = [strFileName stringByRemovingPercentEncoding];
于 2014-09-24T12:37:19.013 に答える
2

スペースの代わりに %20 が必要ない場合は、なぜ使用しているのstringByAddingPercentEscapesUsingEncodingですか?

stringByAddingPercentEscapesUsingEncoding- スペースを %20 に変換します

于 2013-04-25T09:01:11.457 に答える
1

Webサービスからの応答を取得した後、次の行を使用してこれを解決しました。

 responseString= [responseString stringByReplacingOccurrencesOfString:@"%20" withString:@" "];

今、私は正しいデータを取得していますが、これは良い解決策ではないと思います:)。回答ありがとうございます。

于 2013-04-25T10:11:55.453 に答える