UPDATE:私は私のiPhoneの中から電子メールメッセージを送信しよう : How do I encode "&" in a URL in an HTML attribute value?はMAILTO作成:本体内のURLとURLをiPhone SDK
以下のコードを考えてみてください:私はちょうどここに同様のポストを見つけましたアプリ。 私が遭遇する問題は、電子メールの本文にURLを入れたいということです。 このURLには2つのアンパサンドが含まれています。 "stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding"を使用してすべての文字列をエンコードしていますが、URLは最初のアンパサンドの後に切り捨てられた新しいメールmessagdで終わります。 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];
を実装「&」には「&」が含まれているため、問題は解決しません。 ここに提案(http://stackoverflow.com/questions/730101/how-do-i-encode-in-a-url-in-an-html-attribute-value)16進コード%26を使用する必要があります。どういうわけか私のために働いていません。 – Sjakelien
あなたはHTMLエンティティとしてURLに "&"をつけて "&"をミックスしています。 %26値はURLでエンコードするための値です。しかし、HTMLコンテンツにリンクを含める場合は、 "&"を "&"に置き換える必要があります。 HTMLパーサーが "&"を見ると、それに続くものが先に見えます。それが投稿されたリンクの法人の値の1つである場合、それはその文字でレンダリングされます。それが無効な場合、それは停止します(これはあなたが得ているものです)。アンパサンドのセクションを確認してください:http://htmlhelp.com/tools/validator/problems.html – Ramin