奇怪的Firefox URL编码行为

时间:2014-02-05 12:07:07

标签: c# asp.net-mvc-4 firefox browser

我在Firefox中只有一个奇怪的编码问题 我有一个HTML页面,字符集通过

设置为UTF-8

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

并且大多数链接仅更改url-hash。

有一个带有类型类型支持的表单,因此用户可以选择正确的值。 其中一些值包含'&amp;'字符。

在表单上调用.serialize()时,我会得到带有'&amp;'的查询字符串适当逃脱。

现在,当我更改url-hash时,IE和Chrome中的一切正常,但Firefox有一些问题。

FF显示'&amp;'当查看URL时,为'%26',但是使用Firebug检查参数时,我注意到它将其拆分为另一个参数。

实施例

网址:/#/Test/Index?query=foo&bar

Firefox会将URL显示为...?query = foo%26bar,但Firebug的参数列表会显示:

query foo
bar

而Chrome和IE开发工具都显示:

query foo&bar

我不太确定导致这种情况的原因,我几乎找不到任何使用谷歌的东西, 特别是因为它在URL中正确显示。

更新

在更改URL哈希之前,我现在正在测试用户代理是否为FF 如果是这样,我将在整个查询字符串上使用encodeURIComponent(),所以我得到类似的东西:
?query%3Dfoo%26bar在FF中运行良好,但在其他任何浏览器中都不行。

所以我似乎可以选择“编码所有内容,它只适用于FF”和“不编码所有内容,它不会在FF中工作,而是其他所有内容”。

0 个答案:

没有答案