我正在构建一个允许用户对某些文本进行修改的网站。我正在建立一个网址,以便他们可以回来,并在页面加载时应用他们的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是选择的语言。
再次感谢你,
托德
答案 0 :(得分:4)
尽量不要在您尝试编码的URL中使用空格,但请使用连字符。它们将更具可读性,不会在%20
中的%2520
或双重编码等内容中进行编码。
答案 1 :(得分:2)
如果您解码%2520
,则会获得%20
。您正在对一些片段进行两次编码。
答案 2 :(得分:2)
嗯,空格不允许作为URL中的空格,并且“& cn = Common Name”中有一个空格
浏览器会将所有空格更改(实际URL编码)到%20以发送请求。所以你需要改变像“common_name”之类的东西,但你的服务器也应该能够处理...另一种方法是解码URL服务器端,以便%20再次转回空间然后让它做它的事情