UPDATE: Ich habe gerade einen ähnlichen Beitrag hier: How do I encode "&" in a URL in an HTML attribute value?Erstellen einen mailto: URL mit einer URL im Körper iPhone SDK
Bitte beachten Sie den Code unten: ich versuche, von E-Mail-Nachricht zu senden: In meinem iPhone App Das Problem, auf das ich stoße, ist, dass ich eine URL in den Text der E-Mail einfügen möchte. Diese URL enthält zwei Und-Zeichen. Ich codiere alle Zeichenfolgen mit "stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding", aber die URL endet in meiner neuen E-Mail-Nachricht abgeschnitten nach dem ersten Et-Zeichen. IE: "http://www.mydomain.nl/?cm=79&ctime=1246572000&cid=4772" wird "http://www.mydomain.nl/?cm=79".
Jeder Vorschlag, was ich tun könnte, um zu entkommen?
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];
Das Problem hierbei ist, dass die Substitution von "&" enthält ein "&", so dass das Problem nicht gelöst wird. Wie hier vorgeschlagen (http://stackoverflow.com/questions/730101/how-doi-i-code-in-a-url-in-an-html-attribute-value) Ich sollte den Hex-Code% 26 verwenden. Irgendwie funktioniert das auch nicht für mich. – Sjakelien
Sie mischen das "&" in einer URL mit "&" als HTML-Entität. Der% 26-Wert dient zum Codieren in einer URL. Wenn Sie jedoch einen Link in HTML-Inhalt einfügen möchten, müssen Sie "&" durch "&" ersetzen. Wenn der HTML-Parser das "&" sieht, sieht er im Folgenden voraus. Wenn es sich bei dem Link, den ich gepostet habe, um einen der Werte für eine legale Entität handelt, wird es mit diesem Zeichen gerendert. Wenn es ungültig ist, hört es auf (was du bekommst). Überprüfen Sie den Abschnitt über Et-Zeichen hier: http://htmlhelp.com/tools/validator/problems.html – Ramin