C# 在C中,将正文传递给mailto时如何尊重空格#

C# 在C中,将正文传递给mailto时如何尊重空格#,c#,url,mailto,C#,Url,Mailto,我有一个模板样式的页面,它构建了一个mailto链接,可以在用户默认的邮件客户端中打开一个预构建的电子邮件 我意识到默认情况下使用URLencode将用+(pathencode将用%20替换)替换空格,但是否可以在尊重内容中的空格的同时传递正文和主题例如,在javascript中,使用encodeURIComponent(yourMessage)将保留“yourMessage”变量中的空格 这是对我已经使用javascript构建的东西的转换,它在javascript中可以正常工作,但是当将逻

我有一个模板样式的页面,它构建了一个mailto链接,可以在用户默认的邮件客户端中打开一个预构建的电子邮件

我意识到默认情况下使用URLencode将用+(pathencode将用%20替换)替换空格,但是否可以在尊重内容中的空格的同时传递正文和主题例如,在javascript中,使用encodeURIComponent(yourMessage)将保留“yourMessage”变量中的空格

  • 这是对我已经使用javascript构建的东西的转换,它在javascript中可以正常工作,但是当将逻辑应用到C时,它会用“+”符号替换主题/主体中的空格

使用
Uri.EscapeDataString
,它将以
%20
的形式转义空格

private void SubmitEmail(object sender, RoutedEventArgs e)
{
    string txt = "text that is an example";
    string rnt = "this is also an example";
    string PrioStr = "this is an example, of text that will come from a radio buttons contents";
    var yourMessage = txt;
    var subject =$"firstvariable:{Rnt}     secondvariable:{PrioStr}";

    var url = $"mailto:test@test.com.com?subject={Uri.EscapeDataString(subject)}&body={Uri.EscapeDataString(yourMessage)}";
}

你好@NineBerry抱歉,我错过了这个过程。开始运行实际的URL!我的错-我做了一些修改,使它更完整一点,这是WPF表单中的按钮点击的一部分,如果有帮助的话?你正在测试什么电子邮件应用程序?Outlook(2015)似乎能够处理转义为
%20
的空间。我使用了Outlook 2013,windows 10的默认“邮件”客户端连接到gmail帐户。这正是我所需要的!非常感谢你!
private void SubmitEmail(object sender, RoutedEventArgs e)
{
    string txt = "text that is an example";
    string rnt = "this is also an example";
    string PrioStr = "this is an example, of text that will come from a radio buttons contents";
    var yourMessage = txt;
    var subject =$"firstvariable:{Rnt}     secondvariable:{PrioStr}";

    var url = $"mailto:test@test.com.com?subject={Uri.EscapeDataString(subject)}&body={Uri.EscapeDataString(yourMessage)}";
}