を使用して文字列内の空白をエンコードしています
[@"iPhone Content.doc" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
SKPSMTP メッセージ送信中。しかし、添付ファイルの場所でメールを受信しているときiPhone%20Content.doc
に、スペースの代わりに名前を取得しています%20
。これをどのように回避/正しくエンコードできますか?
を使用して文字列内の空白をエンコードしています
[@"iPhone Content.doc" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
SKPSMTP メッセージ送信中。しかし、添付ファイルの場所でメールを受信しているときiPhone%20Content.doc
に、スペースの代わりに名前を取得しています%20
。これをどのように回避/正しくエンコードできますか?
実行している場合stringByAddingPercentEscapesUsingEncoding
、結果の文字列にパーセント記号が含まれます...別のものを使用するか、戻って後でパーセント記号を削除できます。
ドキュメントから:
stringByAddingPercentEscapesUsingEncoding:
指定されたエンコーディングを使用して受信者の表現を返し、受信者を正当な URL 文字列に変換するために必要なパーセント エスケープを決定します。
別名、「このメソッドはパーセント記号を追加します」。このプロセスを逆にしたい場合は、stringByReplacingPercentEscapesUsingEncoding
余談%20
ですが、スペース文字の 16 進表現は 20 であり、% 記号はエスケープであるためです。URL では空白文字の使用が許可されていないため、これを行う必要があるのは URL だけです。
もちろん、リモート レシーバーは空白を含む URL を受け入れることができないため、stringByAddingPercentEscapesUsingEncoding
関数を使用して URL アドレスを変換する必要があります。
この関数は、URL 式のスペースを %20 に置き換えます。これは、URL に非 ASCII 文字が含まれている場合に特に便利です。この関数を使用して URL をパーセントエスケープし、リモート サーバーがリクエストを受け入れることができるようにします。
私は私の質問に対する解決策を得ました。実際、「」を文字列に設定するのを見逃しています。