【问题标题】:How to remove the Whitespaces from a link如何从链接中删除空格
【发布时间】:2014-08-07 16:05:38
【问题描述】:

这可能是一个很小的问题,但老实说,我不知道解决方法是什么,我正在编写一个应用程序,右键单击我生成的链接并使用 Outlook 发送到一些电子邮件地址的文件,这个生成的电子邮件链接必须是电子邮件正文,如果生成的链接不包含任何空格,这可以正常工作。比如如果我的文件名是"This is a testing file.txt",那么生成的链接就是

https://..../share/78/publicLinkHtml/This%20is%20a%20testing%20file.txt

但是当这个邮件正文被渲染到 Outlook 邮件正文中时

下载文件链接

https://..../share/78/publicLinkHtml/This is a testing file.txt

所以链接坏了

我的做法是这样的

strBody = "%0D%0A";
strBody += strDownloadLink + "%0D%0A";
            strBody += "%0D%0A";

在调试时,我检查 strDownloadLink 包含 %20 个字符来代替空格,但在电子邮件正文中它被删除了。

知道如何解决这个问题。

谢谢

【问题讨论】:

    标签: .net windows email c#-4.0 outlook


    【解决方案1】:

    你需要使用HtmlEncode:

    StringWriter writer = new StringWriter();
    Server.HtmlEncode(strDownloadLink, writer);
    String encodedString = writer.ToString();
    

    有关详细信息,请参阅here

    【讨论】:

    • 这里的服务器是什么? mysql服务器。我没有使用它
    【解决方案2】:

    如果您使用纯文本 MailItem.Body 属性,请使用 MailItem.HTMLBody 属性并提供带有正确构造的<a> HTML 元素的 HTML 字符串。

    【讨论】:

      【解决方案3】:

      非常感谢@Donal,他给了我解决方案的想法,我正忙于使用"%0D%0A" or <p></p> 进行 HTML 格式化,我太傻了!

      但实际的解决方案略有不同,我们可以用稍微不同的方式来代替使用 HTML 编码。

      .Net 本身具有非常好的 API,可以将任何字符串构造为 URI 字符串,我所做的就是将该字符串放入 EscapeUriString();

      代码

      strDownloadLink = System.Uri.EscapeUriString(strDownloadLink);

      然后我把它放进去

      strBody = "%0D%0A";
      strBody += strDownloadLink + "%0D%0A";
      strBody += "%0D%0A";
      

      使用此链接后,链接很好,没有中断。

      谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-01
        • 2017-03-20
        • 1970-01-01
        • 1970-01-01
        • 2021-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多