每当我在应用程序中搜索像泰安市这样带有撇号的内容时,该请求就会发送到数据库团队,其内容如下:tai'an city。它添加了一个额外的“&”号,从而使请求失败(ASCII值'->')。如果手动删除多余的&字符,例如tai'an city,则请求已成功处理。

如果我手动设置请求或尝试替换'与“”一样

if(paramValue.contains("'")){
                paramValue = paramValue.replace("'", "'");
}


但是我知道这不是正确的方法。我想找到这种多余的“&”号的来历。有人知道吗?

最佳答案

您可能在某种形式的选项或URL中有一个撇号,浏览器会将其转换为一个实体,该实体随后被发送到Web应用程序。尝试:

<option value="tai%27an City">tai'an City</option>

<a href="www.example.com/foo?bar=tai%27an City">


如果数据最初以&#x27;的形式存储在数据库中,则可能是在将其传递给网页中的用户时对其进行了重新编码(即,&中的&#x27;被重新编码为&amp;)。例如,如果您使用的是JSP,除非指定c:out,否则<c:out escapeXml="false">会转义此类字符。在不知道您正在执行什么步骤的情况下,我无法猜测更多信息,但是我希望这可以指导您解决问题。

09-19 09:38