2

更新: ここで同様の投稿を見つけました: How do I encode "&" in a URL in an HTML attribute value?

以下のコードを検討してください: iPhone アプリ内から電子メール メッセージを送信しようとしています。私が遭遇する問題は、メールの本文に URL を入れたいということです。この URL には 2 つのアンパサンドが含まれています。「stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding」を使用してすべての文字列をエンコードしていますが、URL は最初のアンパサンドの後に切り捨てられた新しいメール メッセージで終了します。IE: " http://www.mydomain.nl/?cm=79&ctime=1246572000&cid=4772 " は " http://www.mydomain.nl/?cm=79 " になります。

逃げるために私ができることは何か提案はありますか?

 NSString *eMailSubject = @"My Subject";
 NSString *encodedSubject = [[NSString alloc] initWithString:[eMailSubject stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
 NSString *eMailBody = @"http://www.mydomain.nl?cm=79&ctime=1246572000&cid=4772";
 NSString *encodedBody = [[NSString alloc] initWithString:[eMailBody stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
 NSString *urlString = [[NSString alloc] initWithString:[NSString stringWithFormat:@"mailto:?subject=%@&body=%@", encodedSubject, encodedBody]];
 NSString *encodedURL = [[NSString alloc] initWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
 NSURL *url = [[NSURL alloc] initWithString:encodedURL];
 [[UIApplication sharedApplication] openURL:url];
4

2 に答える 2

0

実際のHTMLURLが必要な場合は、を使用できませんmailto:

次のいずれかを実行する必要があります。

  1. 独自のSMTPサーバーを実装する
  2. SDK 3.0メールフレームワークを使用する(MFMailCompose ...)
于 2009-07-05T00:39:02.913 に答える
0

電子メール メッセージの本文は HTML ですか? その場合、ほとんどの電子メール リーダーとブラウザは、アンパサンドを HTML エンティティ プレフィックスとして解釈しようとし、アンパサンドに続く法人の値ではなく「ctime」を認識しようとし、残りの文字列の解析をあきらめます。

ここにいくつかの詳細があります。&「 」文字を「 」で文字列置換してみて、&それが役立つかどうかを確認してください。

また、アプリ内から直接電子メールを送信できる OS 3.0 の新しいメッセージング フレームワークの使用を検討することもできます。

于 2009-07-03T18:03:47.157 に答える