如何处理chrome/firefox中的双重转义

How to handle double escaping in chrome/firefox?

本文关键字:firefox 转义 chrome 何处理 处理      更新时间:2023-09-26

这是我的java代码在jsp:

custUrl="customer.action?custId=211&custAddressId=2341";

现在javascript代码:

function submit() {
    window.location = "<c:out value='<%=custUrl%>' />";
    //  here is generated javascript code
    //  window.location = "customer.action?custId=211&amp;custAddressId=2341"
}

FireFox和Chrome (IE不做双转义)正在转义已经转义的值(这就是为什么我得到第二个参数名称为amp;custAddressId而不是custAddressId)。

有任何通用的解决方案,我可以处理双重转义在firefox/chrome?

更新:- 所以底线是,我想用c:out转义预期字符(这正在发生)但是也要避免发送数据到服务器时发生的双重转义对于某些浏览器

默认特殊字符由<c:out>转义。关闭转义

<c:out value='<%=custUrl%>' escapeXml='false' />

&号&在XML中转义为&amp;。这里amp是&符号的缩写。

这不是Firefox/Chrome的问题,因为无论您使用哪种浏览器访问您的网站,最终生成的HTML都是相同的。IE的HTML源查看器必须选择以未转义的形式显示&符号