更新:我刚刚在这里找到了一个类似的帖子: 如何在 HTML 属性值的 URL 中编码“&”?
请考虑下面的代码:我尝试从我的 iPhone 应用程序中发送电子邮件。我遇到的问题是我想在电子邮件正文中放置一个 URL。此 URL 包含两个 & 符号。我正在使用“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];