5

サーバーにデータを送信するためのNSMutableUrlRequestを作成し、それに必要なすべてのフィールドを追加してから、次のように送信するための文字列を追加します。

[theRequest setHTTPBody:[postString dataUsingEncoding: NSUTF8StringEncoding]];

postStringは通常のNSStringです。

問題は、サーバーでこのリクエストを受信すると、すべてのプラス(+)記号がhttp本文から消えることです。したがって、iPhoneに「abcde + fghj」がある場合、サーバーに「abcdefghj」が表示されます。

これは、dataUsingEncoding:NSUTF8StringEncodingを使用することによるエンコーディングの問題である可能性がありますか?または、NSMutableUrlRequestストリッピング機能はありますか?プラス記号の除去を停止するにはどうすればよいですか?サーバー側でUTF8文字列を受信する必要があります。

4

3 に答える 3

4

プラス (+) 記号は、URL のクエリ文字列部分にあるスペースの標準的なショートカットです。リテラル + が必要な場合は、%2b としてエンコードします。

于 2010-03-22T10:39:42.110 に答える
0

サーバーが POST 本文のエンコーディングを認識していない可能性があります。次のように、リクエストのヘッダーに charset=UTF-8 を追加しようとしましたか?

[theRequest setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
于 2010-03-22T10:53:15.500 に答える