0

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

我输入的网址是:

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 是选择的语言。

再次感谢你,

托德

4

3 回答 3

4

尽量不要在您尝试编码的 URL 中使用空格,而是使用连字符。它们将更具可读性%20,并且不会以.%2520

于 2013-03-04T15:26:28.833 回答
2

好吧,URL中不允许空格作为空格,并且“&cn = Common Name”中有空格

浏览器会将所有空格(实际上是 URL 编码)更改为 %20 以发送请求。因此,您需要更改“common_name”之类的值或其他内容,但您的服务器也应该能够处理...另一种方法是在服务器端解码 URL,以便 %20 再次变成空格然后让它做它的事情

于 2013-03-04T15:28:13.237 回答
2

如果你解码%2520你得到%20. 您正在对某些片段进行两次编码。

于 2013-03-04T15:26:34.973 回答