Background
我有一个 url 可以在LinkedIn上共享,带有标题参数:some title
.
为了能够将此标题添加到 URL,空格需要替换为 %20,但显然LinkedIn共享需要双重编码,因此%
也需要编码。
这意味着空间变得%2520
.
如果我像这样手动更正我的网址,它会在我的LinkedIn上共享。
什么会起作用
进一步考虑上述内容,我会得到一个LinkedIn共享网址,如下所示:
https://www.linkedin.com/cws/share?url=http://example.com/entity/1?title=Some%2520title
这将起作用。
然而
在我的网页上,我使用的是MVC Razor,显然是HTML。Raw() 将%2520
解码回 %20
,这将是不正确的。
问题
以正确的方式打印所需 URL 的最佳方法是什么?
我之前在新闻门户工作,我们创建了一个 Helper 方法,用下划线替换字符串中的任何空格以进行共享,以避免这个问题,我认为这是一个很好的快速解决方案
public static string RemoveSpaceFromTitle(this string text)
{
if (string.IsNullOrWhiteSpace(text))
return text;
return text.Replace(" ", "_");
}