代码之家  ›  专栏  ›  技术社区  ›  Chaddeus

如果我的facebook共享链接中有空间,为什么还没有编码(asp.net mvc),它们就不能工作?

  •  0
  • Chaddeus  · 技术社区  · 14 年前

    以下是我的Facebook分享链接代码:

    <a href="<%= HttpUtility.UrlPathEncode("http://www.facebook.com/sharer.php?u=http://www.apoads.com"+ Request.Url.PathAndQuery) %>" title="Share on Facebook" rel="nofollow" target="_blank"><img src="/Content/Img/Png/SocialIcons/facebook_16.png" width="16" height="16" alt="share on facebook" /></a>
    

    生成的URL如下(从Firefox中的视图代码复制并粘贴):

    <a href="http://www.facebook.com/sharer.php?u=http://www.apoads.com/en/Yokota/Biz/Show/Acrylic%20Nails%20for%20less" title="Share on Facebook" rel="nofollow" target="_blank"><img src="/Content/Img/Png/SocialIcons/facebook_16.png" width="16" height="16" alt="share on facebook" /></a>
    

    注意“亚克力20指甲20少20”中的空格是如何用%20表示的。

    然而,Facebook似乎完全删除了20%的内容,但同时也删除了所有的空间!因为名称和空格是在数据库中查找的方式…我的Facebook分享链接总是报告一个断开的链接。

    有没有办法让它保持空间?

    更新 我删除了我的代码,添加了这个代码。由其服务生成的链接的编码方式如下:

    http%3A%2F%2Fwww.apoads.com%2Fen%2FYokota%2FBiz%2FShow%2FAcrylic%2520Nails%2520for%2520less
    

    有没有一个.NET/C实用程序可以这样编码?还是我要自己滚?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Forgotten Semicolon adrianm    14 年前

    我想你希望链接是:

    <a href='<%= String.Format("http://www.facebook.com/sharer.php?u={0}",
                   HttpUtility.UrlPathEncode("http://www.apoads.com" + Request.Url.PathAndQuery)) %>' 
       title="Share on Facebook" 
       rel="nofollow" 
       target="_blank">
         <img src="/Content/Img/Png/SocialIcons/facebook_16.png" width="16" height="16" alt="share on facebook" />
    </a>
    

    更新 从您的更新来看,它可能是双重编码的:

    <a href='<%= String.Format("http://www.facebook.com/sharer.php?u={0}", 
                   HttpUtility.UrlEncode(HttpUtility.UrlPathEncode("http://www.apoads.com"+ Request.Url.PathAndQuery))) %>' 
       title="Share on Facebook" 
       rel="nofollow" 
       target="_blank">
         <img src="/Content/Img/Png/SocialIcons/facebook_16.png" width="16" height="16" alt="share on facebook" />
    </a>