0

私のiOSアプリケーションでは、NSURLConnectionを使用してサーバーにリクエストを投稿しています。以下は私が使用しているコードです:

NSString* str = @"http://www.myserver.com/post.php?action=rating&grade=A+&name=vasu";
NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

成績が表示されている場合は、「A +」と同じですが、
サーバーへの成績として「A」のみが投稿されています。文字列を適切にエンコードしているのに、リクエストを適切に送信できないのはなぜですか?
サーバー上で処理する必要があるものですか?

4

1 に答える 1

1

+記号は、URLエンコード用の予約文字です(「スペース」用)。+のエスケープされた値は、後は%2BになるはずstringByAddingPercentEscapesUsingEncodingですが、そうではありません。NSStringただし、この問題を回避するために、単純なカテゴリをに追加することができます。関連するブログ投稿はここにあり、 URLエンコードに関する情報はここにあります。

于 2012-06-22T20:36:56.353 に答える