URL编码奇怪

时间:2013-03-04 15:22:58

标签: javascript jquery url

我正在构建一个允许用户对某些文本进行修改的网站。我正在建立一个网址,以便他们可以回来,并在页面加载时应用他们的mod。这一切都有效,但当我在浏览器地址栏中输入网址时,我会收到一些“时髦”的字符。

我输入的网址是:

http://localhost:8888/PlantTags/index%20copy.php/temp=lg_oval&cn=Common Name&cX=-10&cY=40&cf=Giddyup&cfs=52&clh=1&ca=center&bn=Botanical Name&bX=80&bY=115&bf=Comic-Sans-Ms&bfs=21&blh=1&ba=center&rev=false

但浏览器将其编码为:

http://localhost:8888/PlantTags/index%20copy.php?temp=lg_oval&cn=Big%2520Jumbo&cX=-10&cY=40&cf=Giddyup&cfs=52&clh=1&ca=center&bn=Botanical%2520Name&bX=80&bY=115&bf=Comic-Sans-Ms&bfs=21&blh=1&ba=center&rev=false?temp=lg_oval&cn=Big%20Jumbo&cX=-10&cY=40&cf=Giddyup&cfs=52&clh=1&ca=center&bn=Botanical%20Name&bX=80&bY=115&bf=Comic-Sans-Ms&bfs=21&blh=1&ba=center&rev=false

所以当我从url中获取cn参数时,我会获得额外的字符。有人能告诉我%2520来自哪里以及如何处理它?我已经尝试将它插入textarea并从中获取html和decodeURIComponent ...都失败了。哦是的.... javascript或jQuery是选择的语言。

再次感谢你,

托德

3 个答案:

答案 0 :(得分:4)

尽量不要在您尝试编码的URL中使用空格,但请使用连字符。它们将更具可读性,不会在%20中的%2520双重编码等内容中进行编码。

答案 1 :(得分:2)

如果您解码%2520,则会获得%20。您正在对一些片段进行两次编码。

答案 2 :(得分:2)

嗯,空格不允许作为URL中的空格,并且“& cn = Common Name”中有一个空格

浏览器会将所有空格更改(实际URL编码)到%20以发送请求。所以你需要改变像“common_name”之类的东西,但你的服务器也应该能够处理...另一种方法是解码URL服务器端,以便%20再次转回空间然后让它做它的事情