我有一个看起来像这样的链接(它有点难看,因为它是 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>
提交表单时,目标 URL 在不同的浏览器中看起来不同:
在 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 编码规则?