我有一个看起来像这样的链接(它有点难看,因为它是URL)
<a href="/items?fc%5B%5D=12345&fc%5B%5D=56789&utf8=%E2%9C%93">foo</a>
有点清楚,它是URL编码并转换为
<a href="/items?fc[]=12345&fc[]=56789&utf8=✓">foo</a>
提交表单后,目标网址在不同浏览器中看起来有所不同:
在Firefox中,它看起来像是理想的:
http://mydomain/items?fc[]=12345&fc[]=56789&utf8=✓
在Chrome中,方括号显示为URL编码(当使用其中许多地址时,它会给出非常难看和非专业的地址)。
http://mydomain/items?fc%5B%5D=12345&fc%5B%5D=56789&utf8=✓
在IE9(及更早版本)中,所有内容都显示为URL编码:
http://mydomain/items?fc%5B%5D=12345&fc%5B%5D=56789&utf8=%E2%9C%93
我可以使用“utf8 = ...”部分,因为它只是IE中的一个问题。 但是当方括号明确键入URL时,没有一个浏览器处理有任何问题,所以我不明白为什么Chrome和IE,但Firefox不必显示带URL编码的括号。
由于表单的html代码在所有浏览器中都是相同的,我认为这与浏览器有关,而不是与网站(在这种情况下是Ruby on Rails网站)有关。
编辑: 所以澄清我的实际问题: 为什么会有所不同? 有没有办法让它在至少Chrome中看起来很好看? 它可以通过在href =“...”中不进行URL转义来修复,但我认为这是针对URL编码规则的吗?
答案 0 :(得分:1)
由于您想要分享这些链接(有状态),我认为您预计您的链接将被共享,链接从网页,复制,通过电子邮件发送等。
即使在浏览器之外(例如,将链接复制到其他页面,电子邮件等等),也可能会发生某些编码。如果你必须使用这些字符,你可能不得不接受丑陋的地方。