【问题标题】:Why don't my Facebook share links work if they have spaces in them yet are encoded (asp.net mvc)?如果我的 Facebook 分享链接中有空格但已编码(asp.net mvc),为什么我的 Facebook 分享链接不起作用?
【发布时间】:2010-09-18 02:42:59
【问题描述】:

这是我的 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>

注意“Acrylic%20Nails%20for%20less”中的空格是如何用 %20 表示的。

然而,Facebook 似乎完全去除了 %20,但也一起去除了空间!由于名称和空格是在数据库中查找的方式...我的 Facebook 分享链接总是报告链接断开。

有什么办法让它保留空格?

更新 我删除了我的代码,而是添加了 AddThis 代码。他们的服务生成的链接编码如下:

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

是否有 .net/c# 实用程序可以像这样进行编码?还是我必须自己动手?

【问题讨论】:

    标签: asp.net-mvc facebook url encoding


    【解决方案1】:

    我认为您希望链接是:

    <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>
    

    【讨论】:

    • 感谢您的快速回复。我刚刚试了一下,它和我描述的完全一样。看起来 Facebook 去掉了这些空间。 ;(
    • 也许可以试试加号而不是 %20。
    • 同样的问题......看起来他们在使用共享网址时确实会去除空格。使用完全相同的 url 的like 按钮可以正常工作。 ;(
    • 我更新了我的问题,看来我需要进行不同的编码。
    猜你喜欢
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 2021-03-19
    • 2020-12-24
    • 2011-09-16
    • 1970-01-01
    相关资源
    最近更新 更多