谷歌加网址分享

时间:2014-11-08 10:59:51

标签: javascript url encoding google-plus

我使用此链接通过google plus分享我的页面。

 https://plus.google.com/share?url=http%3A%2F%2Fexample.com%2Fcompany%20name%2search

所以我使用encodeURIComponent获取此url(也尝试使用encodeURI)。 但是当出现共享框时链接不正确。它是:

 http://example.com/company

Forsure我可以改变'',例如' - '(或其他符号),但我在我的AngulaJs应用程序中使用url中的值来进行正确的初始化,最好使用本机方式。

我的错是什么,或者有什么原生方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

%20是一个编码空间,它不是有效的URL字符。最常用的字符而不是空格是-

最好的方法是将输入规范化为您将用于查询自己的数据库的ID。例如。 Bob's Bar & Grill将被处理为bobs-bar-grill,然后您将查询您的数据库以查找:

{
    "id": "bobs-bar-grill",
    "name": "Bob's Bar & Grill"
}

这既可以使您的网址清晰,也可以更好地保护您免受网址中随机用户内容的安全角度的影响。

作为最后的手段,您可以对路径进行双重编码,以便Google在对网址进行一次解码后仍然有编码空格。

var url = "http://example.com/company name";
encodeURI(encodeURI(url));
// "http://example.com/company%2520name"

Google会将用户发送到http://example.com/company%20name