编码mailto:uri

时间:2013-12-18 16:46:19

标签: c# ios encoding xamarin.ios mailto

我必须使用Xamarin.iOSOpenUrl应用程序发送邮件。简单的案例很好:

var uri = new Uri ("mailto:info@example.com");
UIApplication.SharedApplication.OpenUrl (new NSUrl (uri.ToString ()));

但是,如果我想发送compilex mailto uri,例如,它需要某种编码。

var uri = new Uri ("mailto:info@example.com?subject=Hello, World!");
UIApplication.SharedApplication.OpenUrl (new NSUrl (uri.ToString ())); //FAIL

我已经尝试System.Net.Webutility.Encode(),但这不起作用。

1 个答案:

答案 0 :(得分:1)

WebUtility.UrlEncode 确实有效。但NSUrl输入有限。

我通过从输入字符串中删除奇怪的字符来修复此问题。

var subject = Regex.Replace (subject, @"[^\u0000-\u00FF]", string.Empty);
var uri = new Uri("mailto:info@b4c.be?subject=" + WebUtility.UrlEncode(subject));
UIApplication.SharedApplication.OpenUrl (new NSUrl (uri.ToString ()));