0

を使用して文字列内の空白をエンコードしています

[@"iPhone Content.doc" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

SKPSMTP メッセージ送信中。しかし、添付ファイルの場所でメールを受信して​​いるときiPhone%20Content.docに、スペースの代わりに名前を取得しています%20。これをどのように回避/正しくエンコードできますか?

4

3 に答える 3

0

実行している場合stringByAddingPercentEscapesUsingEncoding、結果の文字列にパーセント記号が含まれます...別のものを使用するか、戻って後でパーセント記号を削除できます。

ドキュメントから:

stringByAddingPercentEscapesUsingEncoding:指定されたエンコーディングを使用して受信者の表現を返し、受信者を正当な URL 文字列に変換するために必要なパーセント エスケープを決定します。

別名、「このメソッドはパーセント記号を追加します」。このプロセスを逆にしたい場合は、stringByReplacingPercentEscapesUsingEncoding

余談%20ですが、スペース文字の 16 進表現は 20 であり、% 記号はエスケープであるためです。URL では空白文字の使用が許可されていないため、これを行う必要があるのは URL だけです。

于 2012-08-15T12:12:42.697 に答える
0

もちろん、リモート レシーバーは空白を含む URL を受け入れることができないため、stringByAddingPercentEscapesUsingEncoding関数を使用して URL アドレスを変換する必要があります。

この関数は、URL 式のスペースを %20 に置き換えます。これは、URL に非 ASCII 文字が含まれている場合に特に便利です。この関数を使用して URL をパーセントエスケープし、リモート サーバーがリクエストを受け入れることができるようにします。

于 2014-04-24T02:07:22.280 に答える
0

私は私の質問に対する解決策を得ました。実際、「」を文字列に設定するのを見逃しています。

于 2012-08-15T16:54:51.320 に答える