为什么逻辑不字符¬出现在HTTP GET查询字符串中

问题描述

以下HTML演示了我的问题-当我将鼠标悬停在链接上或单击它时,&not在Chrome中变成%AC,在Firefox中变成¬,使查询变得毫无意义。这种行为对我来说没有任何意义,而且我也没有在任何文档中找到它的描述,尽管除了关于URL的RFC以外,我实际上并不知道在哪里查找。

<html>
<body>
<p><a href="http://localhost/?truth=falsehood&not_broken=broken">foo</a></p>
</body>
</html>

上下文是,我有一些JavaScript可以根据服务器的响应生成HTTP GET参数,以显示在链接URL中。如果这些参数之一的字段以not_开头,而&not_出现在查询字符串中,则Chrome和Firefox似乎都将&not转换为¬(“ not”的符号(在数学形式逻辑中),如果我使用开发工具检查了URL,然后在Chrome的情况下,当我单击该链接时,涉及到%AC的东西变成废话。大概是因为HTML实体&not;为该符号(U + 00AC)进行了编码,但是查询字符串中没有分号。

我的问题是,为什么浏览器将&not内的这个字符替换为href,其中&的含义不同,即使没有分号,并且还有更好的含义避免在查询字符串中避免使用HTML实体名称的方法。

解决方法

通常,HTML属性中的&字符需要转义为&amp;

如果它的用途很明确,您可以不用它而逃脱,但这不是这种情况。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...