更新: ここで同様の投稿を見つけました: 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];