我使用此链接通过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中的值来进行正确的初始化,最好使用本机方式。
我的错是什么,或者有什么原生方法可以解决这个问题吗?
答案 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